這是一個非常類似的問題在stackoverflow但由於某種原因,這是行不通的。我花了很多時間沒有成功。聚合與排序日期不起作用
下面是我收集的設置
{
"_id" : ObjectId("5715acfcf1dbdc7c0ae94379"),
"users":[ObjectId("570d2308ba5bc6842242e881"),
ObjectId("570d7e4b369ac0c525e98331")
],
"messages" : [
{
"user" : ObjectId("570d2308ba5bc6842242e881"),
"message" : NumberInt(0),
"readInd" : "N",
"createDate" : ISODate("2016-04-19T03:59:12.587+0000"),
"_id" : ObjectId("5715ad10f1dbdc7c0ae94396")
},
{
"user" : ObjectId("570d2308ba5bc6842242e881"),
"message" : NumberInt(1),
"readInd" : "N",
"createDate" : ISODate("2016-04-19T04:11:10.541+0000"),
"_id" : ObjectId("5715afdef36f23a10ad12348")
},
{
"user" : ObjectId("570d2308ba5bc6842242e881"),
"message" : NumberInt(2),
"readInd" : "N",
"createDate" : ISODate("2016-04-19T04:11:11.756+0000"),
"_id" : ObjectId("5715afdff36f23a10ad12352")
}
]
}
,這裏是我的貓鼬
var objId = new ObjectID("5715acfcf1dbdc7c0ae94379");
chatModel.aggregate([
{ "$match": { "users": {'$in':[objId]}} },
{
"$project": {
"messages":1
}
}
,{"$sort": {"messages.createDate": -1} }
],function(err,records) {
if (err) {
return res.json({status: false, errCode: 900, errMsg: err});
}
res.json({status:true,resData:records}) ;
});
感謝代碼剪斷,
那麼究竟什麼是*「不工作」 *?你期望發生什麼? –
[「通過最大數組字段進行排序,升序或降序」]可能重複(http://stackoverflow.com/questions/35374433/sorting-by-maximum-array-field-ascending-or-descending/) –
@NeilLunn :結果按日期排序 – user2596892