Lorsque vous $group
après un $sort
dans le pipeline, le tri précédent est perdu. Vous devriez faire quelque chose comme ça à la place pour que la date que vous voulez trier soit disponible après le regroupement :
db.summary.aggregate(
{$match: {circles: 2}},
{$group: {_id: '$cid', date: {$max: '$date'}}},
{$sort: {date: -1}});
résultat :
[ { _id: 2, date: 5 },
{ _id: 1, date: 2 },
{ _id: 3, date: 0 } ]
Ajouter un $project
à la fin du pipeline si vous souhaitez remodeler la sortie.