Dies ist eine sehr ähnliche Frage auf Stackoverflow, aber aus irgendeinem Grund funktioniert das nicht. Ich habe viel Zeit ohne Erfolg verbracht.Aggregieren mit Sortieren eines Datums funktioniert nicht
Hier ist meine Sammlung Setup
{
"_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")
}
]
}
und hier ist mein Code snipper mit Mungo
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}) ;
});
Danke,
Was genau ist * „funktioniert nicht“ *? Was erwartest du zu passieren? –
Mögliches Duplikat von ["Sortierung nach maximalem Array-Feld, aufsteigend oder absteigend"] (http://stackoverflow.com/questions/35374433/sorting-by-maximum-array-field-ascending-or-descending/) –
@NeilLunn : Ergebnisse werden sortiert nach Datum – user2596892