Bạn gần như đã có nó ...
db.test.aggregate(
{$group: {_id: '$postcode', students: {$sum: 1}}},
{$sort: {_id: -1}}
);
cho (Tôi đã thêm một số dữ liệu thử nghiệm phù hợp với mẫu của bạn):
{
"result" : [
{
"_id" : 2003,
"students" : 3
},
{
"_id" : 2002,
"students" : 1
},
{
"_id" : 2001,
"students" : 2
}
],
"ok" : 1
}
Bạn có một {}
bên ngoài xung quanh mọi thứ, đã gây ra một số nhầm lẫn. Nhóm và sắp xếp không hoạt động như các hoạt động riêng biệt trong quy trình.
Bạn không thực sự cần dự án cho trường hợp này.
Cập nhật Trước tiên, bạn có thể muốn sắp xếp theo "sinh viên" để có được mã zip lớn nhất (theo dân số):
db.test.aggregate(
{$group: {_id: '$postcode', students: {$sum: 1}}},
{$sort: {students: -1}}
);