Node.js 如何使用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 }, {

如何使用mongooes对mongodb中的子文档进行排序?下面是我想整理的数据

[
  {
      "_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" }}
 }
])