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

mongodb aggregeringssort

Du havde det næsten...

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

giver (jeg tilføjede nogle testdata, der matcher din prøve):

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

Du havde en ydre {} omkring alt, hvilket skabte en del forvirring. Gruppen og sorteringen fungerede ikke som separate operationer i pipelinen.

Du havde ikke rigtig brug for projektet til denne sag.

Opdater Du vil sikkert gerne sortere efter "studerende", f.eks. for at få de største postnumre (efter befolkning) først:

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


  1. PHP kan ikke finde MongoDB-driveren

  2. MongoDB db.collection.count()

  3. Indlejret array $pull-forespørgsel ved hjælp af C# MongoDB-driver

  4. Kan ikke få adgang til objektegenskaben for et Mongoose-svar