sql >> Base de Datos >  >> NoSQL >> MongoDB

clasificación de agregación mongodb

Casi lo tienes...

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

da (agregué algunos datos de prueba que coinciden con su muestra):

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

Tenías un {} externo alrededor de todo, lo que estaba causando cierta confusión. El grupo y la ordenación no funcionaban como operaciones separadas en la canalización.

Realmente no necesitabas el proyecto para este caso.

Actualizar Probablemente desee ordenar por "estudiantes", así, para obtener primero los códigos postales más grandes (por población):

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