Når du $group
efter en $sort
i pipelinen går den tidligere sortering tabt. Du bliver nødt til at gøre sådan noget i stedet for, så den dato, du vil sortere efter, er tilgængelig efter grupperingen:
db.summary.aggregate(
{$match: {circles: 2}},
{$group: {_id: '$cid', date: {$max: '$date'}}},
{$sort: {date: -1}});
resultat:
[ { _id: 2, date: 5 },
{ _id: 1, date: 2 },
{ _id: 3, date: 0 } ]
Tilføj et $project
til slutningen af pipelinen, hvis du vil omforme outputtet.