MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Quadro di aggregazione Mongo, Ordina e quindi gruppo non funzionante

Quando $group dopo un $sort nella pipeline, l'ordinamento precedente viene perso. Dovresti invece fare qualcosa del genere in modo che la data in base alla quale desideri ordinare sia disponibile dopo il raggruppamento:

db.summary.aggregate(
    {$match: {circles: 2}},
    {$group: {_id: '$cid', date: {$max: '$date'}}},
    {$sort: {date: -1}});

risultato:

[ { _id: 2, date: 5 }, 
  { _id: 1, date: 2 }, 
  { _id: 3, date: 0 } ]

Aggiungi un $project alla fine della pipeline se vuoi rimodellare l'output.