Skoro jsi to měl...
db.test.aggregate(
{$group: {_id: '$postcode', students: {$sum: 1}}},
{$sort: {_id: -1}}
);
dává (přidal jsem některá testovací data odpovídající vašemu vzorku):
{
"result" : [
{
"_id" : 2003,
"students" : 3
},
{
"_id" : 2002,
"students" : 1
},
{
"_id" : 2001,
"students" : 2
}
],
"ok" : 1
}
Měli jste vnější {}
kolem všeho, což způsobovalo určitý zmatek. Skupina a řazení nefungovaly jako samostatné operace v procesu.
Pro tento případ jste projekt opravdu nepotřebovali.
Aktualizovat Pravděpodobně budete chtít třídit podle „studentů“, abyste nejprve získali největší PSČ (podle počtu obyvatel):
db.test.aggregate(
{$group: {_id: '$postcode', students: {$sum: 1}}},
{$sort: {students: -1}}
);