MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongo-Aggregationsframework, Sortieren und dann Gruppieren funktioniert nicht

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.