Node.js 如何使用mongooes对mongodb中的子文档进行排序?
如何使用mongooes对mongodb中的子文档进行排序?下面是我想整理的数据Node.js 如何使用mongooes对mongodb中的子文档进行排序?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,如何使用mongooes对mongodb中的子文档进行排序?下面是我想整理的数据 [ { "_id": "5eacbb21936a0e07e8aa8f7e", "users": [ { "_id": "5eae29e207b6bf06f856aeec", "name": "crystal", "number": 20 }, {
[
{
"_id": "5eacbb21936a0e07e8aa8f7e",
"users": [
{
"_id": "5eae29e207b6bf06f856aeec",
"name": "crystal",
"number": 20
},
{
"_id": "5eae29e207b6bf06f856aeec",
"name": "barbra",
"number": 40
},
{
"_id": "5eae29e207b6bf06f856aeec",
"name": "marry",
"number": 30
}
],
"__v": 0
}
]
我试过这个
db.aggregate([{$match: {"_id": ObjectId("5eacbb21936a0e07e8aa8f7e") }}, {$sort: { "user.number": -1 }}])
而且这两个都不起作用
db.find({"_id": ObjectId("5eacbb21936a0e07e8aa8f7e") }).sort({"user.number": -1})
我想在下面得到这个结果,但是查询返回的数据与上面的相同
[
{
"_id": "5eacbb21936a0e07e8aa8f7e",
"users": [
{
"_id": "5eae29e207b6bf06f856aeec",
"name": "crystal",
"number": 20
},
{
"_id": "5eae29e207b6bf06f856aeec",
"name": "marry",
"number": 30
},
{
"_id": "5eae29e207b6bf06f856aeec",
"name": "barbra",
"number": 40
},
],
"__v": 0
}
]
有一个打字错误 字段名为
用户
非用户。
只要改变它,它就会工作:
db.collectionName.aggregate([{$match: {"_id": ObjectId("5eacbb21936a0e07e8aa8f7e") }}, {$sort: { "users.number": -1 }}])
或
请尝试此查询
db.demo2.aggregate([
{$match: {"_id": ObjectId("5eacbb21936a0e07e8aa8f7e") }},{$unwind:"$users"},
{$sort: { "users.number": -1 }},
{"$group" : {_id:"$_id",
users:{ $push: "$users" }}
}
])
我觉得我必须注意到,这个帐户最近发布了几个答案,基本上是从现有的答案取消。在StackOverflow上查找现有答案,然后将其作为自己的答案发布,这不是如何做到的。答案基本上由“试试这个”和一段没有解释的代码组成,通常是从另一个来源获得的,而不是发布答案的人的直接知识。
db.demo2.aggregate([
{$match: {"_id": ObjectId("5eacbb21936a0e07e8aa8f7e") }},{$unwind:"$users"},
{$sort: { "users.number": -1 }},
{"$group" : {_id:"$_id",
users:{ $push: "$users" }}
}
])