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

Mongodb-Aggregationssortierung

Du hättest es fast geschafft...

db.test.aggregate(
  {$group: {_id: '$postcode', students: {$sum: 1}}}, 
  {$sort: {_id: -1}}
);

ergibt (ich habe einige Testdaten hinzugefügt, die zu Ihrer Probe passen):

{
  "result" : [
    {
        "_id" : 2003,
        "students" : 3
    },
    {
        "_id" : 2002,
        "students" : 1
    },
    {
        "_id" : 2001,
        "students" : 2
    }
  ],
  "ok" : 1
}

Sie hatten einen äußeren {} um alles herum, was für einige Verwirrung sorgte. Die Gruppierung und die Sortierung funktionierten nicht als separate Vorgänge in der Pipeline.

Für diesen Fall brauchten Sie das Projekt nicht wirklich.

Aktualisieren Sie möchten wahrscheinlich nach "Studenten" sortieren, um zuerst die größten Postleitzahlen (nach Einwohnerzahl) zu erhalten:

db.test.aggregate(
  {$group: {_id: '$postcode', students: {$sum: 1}}}, 
  {$sort: {students: -1}}
);