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

Kri*_*lay 2 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")
      },
      {
         "item":"ITEM3",
         "date":ISODate("2016-09-06T13:45:44.714Z")
      }
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

Vol*_*erM 5

您可以展开data数组,对结果进行排序,data.date然后再次对其进行分组_id

[
    {$unwind: {path: "$data"}},
    {$sort: {"data.date": -1}},
    {$group: {_id: "$_id", data: {$push: {item: "$data.item", date: "$data.date"}}}}
]
Run Code Online (Sandbox Code Playgroud)

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