在mongodb中获取查询时出错

时间:2014-05-01 05:48:43

标签: mongodb aggregation-framework

我在mongo db中有一个集合,如下所示:

"notifications" : [
    {
        "type" : "Shout",
        "created" : ISODate("2014-04-24T13:37:02.678Z")
    },
    {
        "type" : "Shout",
        "created" : ISODate("2014-04-25T17:34:15.388Z")
    }
          ];

我只想按创建日期对这些通知进行排序,并使用mongo查询获取它们但不能执行此操作。任何人都可以帮助我..谢谢..

1 个答案:

答案 0 :(得分:2)

您可以使用聚合框架根据日期对数据进行排序。这是我尝试过的,它的工作正常。

db.shouts.aggregate([
  { "$unwind": "$notifications"}, 
  { "$sort": { "notifications.created": -1 }}, 
  { "$group": { "_id": "$_id", "notifications": { "$push": "$notifications" }}}
]);

结果是:

 {
     "_id" : ObjectId("5361e2cfbf5e5bf862400210"),
     "notifications" : [
         {
             "type" : "Shout",
             "created" : ISODate("2014-04-25T17:34:15.388Z")
         },
         {
             "type" : "Shout",
             "created" : ISODate("2014-04-24T13:37:02.678Z")
         }
     ]
 }

希望有所帮助