あなたはほとんどそれを持っていました...
db.test.aggregate(
{$group: {_id: '$postcode', students: {$sum: 1}}},
{$sort: {_id: -1}}
);
与える(私はあなたのサンプルに一致するいくつかのテストデータを追加しました):
{
"result" : [
{
"_id" : 2003,
"students" : 3
},
{
"_id" : 2002,
"students" : 1
},
{
"_id" : 2001,
"students" : 2
}
],
"ok" : 1
}
外側の{}
がありました すべての周りに、それはいくつかの混乱を引き起こしていました。グループと並べ替えは、パイプラインで別々の操作として機能していませんでした。
この場合、プロジェクトは実際には必要ありませんでした。
更新 おそらく、「学生」で並べ替えて、最初に(人口で)最大の郵便番号を取得することをお勧めします。
db.test.aggregate(
{$group: {_id: '$postcode', students: {$sum: 1}}},
{$sort: {students: -1}}
);