Wenn Sie $group
nach einem $sort
in der Pipeline geht die vorherige Sortierung verloren. Sie müssten stattdessen so etwas tun, damit das Datum, nach dem Sie sortieren möchten, nach der Gruppierung verfügbar ist:
db.summary.aggregate(
{$match: {circles: 2}},
{$group: {_id: '$cid', date: {$max: '$date'}}},
{$sort: {date: -1}});
Ergebnis:
[ { _id: 2, date: 5 },
{ _id: 1, date: 2 },
{ _id: 3, date: 0 } ]
Fügen Sie ein $project
hinzu bis zum Ende der Pipeline, wenn Sie die Ausgabe umgestalten möchten.