我在mongo db中有一个集合,如下所示:
"notifications" : [
{
"type" : "Shout",
"created" : ISODate("2014-04-24T13:37:02.678Z")
},
{
"type" : "Shout",
"created" : ISODate("2014-04-25T17:34:15.388Z")
}
];
我只想按创建日期对这些通知进行排序,并使用mongo查询获取它们但不能执行此操作。任何人都可以帮助我..谢谢..
答案 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")
}
]
}
希望有所帮助