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

Mongo aggregeringsramme, sorter og derefter gruppe fungerer ikke

Når du $group efter en $sort i pipelinen går den tidligere sortering tabt. Du bliver nødt til at gøre sådan noget i stedet for, så den dato, du vil sortere efter, er tilgængelig efter grupperingen:

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

resultat:

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

Tilføj et $project til slutningen af ​​pipelinen, hvis du vil omforme outputtet.




  1. MongoDB Date() metode

  2. Sådan sender du indre forespørgsel i mongodb fra javascript

  3. Forespørg for at få en værdi ved at trække en værdi fra nuværende og næste dokument

  4. Mongo C# Driver:Deserialize BsonValue