문제

I have a collection in mongo db which looks like this:

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

I just want to sort these notifications by created date and fetch them using mongo query but not able to do it. Can anybody help me.. Thanks..

도움이 되었습니까?

해결책

You can probably use aggregation framework to sort your data based on date. Here is what I tried and its working fine.

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

and the result is:

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

hope it helps

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top