Node.js 如何使用NodeJS按数组中的第n项对mongo数据库进行排序?
例如,数据库如下所示Node.js 如何使用NodeJS按数组中的第n项对mongo数据库进行排序?,node.js,arrays,mongodb,sorting,Node.js,Arrays,Mongodb,Sorting,例如,数据库如下所示 { id: 1, counter: [2,6] }, { id: 2, counter: [5,10] }, { id: 3, counter: [1,3] } { id: 2, counter: [5,10] }, { id: 1, counter: [2,6] }, { id: 3, counter: [1,3] } 现在我想按每个数组中的第二项对其进行排序,结果如下 { id: 1, counter: [2,
{
id: 1,
counter: [2,6]
},
{
id: 2,
counter: [5,10]
},
{
id: 3,
counter: [1,3]
}
{
id: 2,
counter: [5,10]
},
{
id: 1,
counter: [2,6]
},
{
id: 3,
counter: [1,3]
}
现在我想按每个数组中的第二项对其进行排序,结果如下
{
id: 1,
counter: [2,6]
},
{
id: 2,
counter: [5,10]
},
{
id: 3,
counter: [1,3]
}
{
id: 2,
counter: [5,10]
},
{
id: 1,
counter: [2,6]
},
{
id: 3,
counter: [1,3]
}
有人知道如何做到这一点吗?您可以使用sort属性
const数据=[{
id:2,
柜台:[5,10]
},
{
id:1,
柜台:[2,6]
},
{
id:3,
柜台:[1,3]
}]
数据排序((a,b)=>{
返回a.计数器[1]>b.计数器[1]
})
console.log(数据)
您可以使用聚合管道:
添加新字段$addFields
,该字段将等于数组的第二项分拣机
根据新字段对结果进行排序$sort
指定从结果返回哪些属性$project
下面是一个工作示例:谢谢你的想法,但是我在这个数据库中有20000个文档,所以这不是一个非常有效的好主意!