сортировка агрегации mongodb
У меня есть база данных студентов и их контактные данные. Я пытаюсь найти почтовый индекс, в котором находится большинство студентов. Документы для студентов выглядят примерно так ...
{studentcode: 'smi0001', firstname: 'bob', surname: 'smith', postcode: 2001}
Я думал, что смогу использовать структуру агрегации, чтобы узнать почтовый индекс у большинства студентов, сделав что-то вроде ...
db.students.aggregate({$project: { postcode: 1 }, $group: {_id: '$postcode', students: {$sum: 1}}})
это работает как ожидалось (возвращает почтовые индексы как_id
и количество студентов в каждом почтовом индексе как «студентов», но если я добавлю$sort
в конвейер, кажется, пытается сортировать по всей коллекции студентов, а не результаты$group
операция.
как я пытаюсь выглядеть ...
db.students.aggregate({$project: { postcode: 1 }, $group: {_id: '$postcode', students: {$sum: 1}}, $sort: {_id: -1}})
но он возвращает всю коллекцию и игнорирует$project
а также$group
...
Am I missing something? I thought I'd just be able to sort by descending number of students and return the first item.
Thanks in advance for any help.