根据数组中嵌入的日期对MongoDB中的数据进行排序

根据数组中嵌入的日期对MongoDB中的数据进行排序,mongodb,mongodb-query,Mongodb,Mongodb Query,我的mongodb文档如下: { "_id":"fnbgfbmkgmbkgmbklhn", "data":[ { "item":"ITEM1", "date":ISODate("2016-09-06T13:38:44.714Z") }, { "item":"ITEM2", "date":ISODate("2016-09-06T13:50:44.714Z") },

我的mongodb文档如下:

{
  "_id":"fnbgfbmkgmbkgmbklhn",
  "data":[
      {
         "item":"ITEM1",
         "date":ISODate("2016-09-06T13:38:44.714Z")
      },
      {
         "item":"ITEM2",
         "date":ISODate("2016-09-06T13:50:44.714Z")
      },
      {
         "item":"ITEM3",
         "date":ISODate("2016-09-06T13:45:44.714Z")
      }
  ]
}

此文档是db.collectionName.aggregate(..)的结果。应用聚合后,如何根据“日期”进行排序。

您可以展开
数据数组,按
数据.date对结果进行排序,并按
\u id
再次分组:

[
    {$unwind: {path: "$data"}},
    {$sort: {"data.date": -1}},
    {$group: {_id: "$_id", data: {$push: {item: "$data.item", date: "$data.date"}}}}
]

将这些阶段合并到现有的聚合管道中,而不是仅仅附加它们,可能会更有效

您能否向我们展示给出上述结果的先前聚合管道?从标记的可能重复中,您可以简单地在给出结果的管道之前导入管道,因此如果您可以编辑您的问题以显示完整的管道,那就太好了。谢谢。我真的很感谢你的帮助。