Когато $group
след $sort
в конвейера предишното сортиране се губи. Вместо това ще трябва да направите нещо подобно, така че датата, по която искате да сортирате, да е налична след групирането:
db.summary.aggregate(
{$match: {circles: 2}},
{$group: {_id: '$cid', date: {$max: '$date'}}},
{$sort: {date: -1}});
резултат:
[ { _id: 2, date: 5 },
{ _id: 1, date: 2 },
{ _id: 3, date: 0 } ]
Добавете $project
до края на тръбопровода, ако искате да промените формата на изхода.