tipo de agregação mongodb
Eu tenho um banco de dados de estudantes e seus detalhes de contato. Estou tentando descobrir o código postal que abriga o maior número de alunos. Os documentos para os estudantes são parecidos com isto ...
{studentcode: 'smi0001', nome: 'bob', sobrenome: 'smith', código postal: 2001}
Eu pensei que eu poderia usar a estrutura de agregação para descobrir o código postal com a maioria dos alunos, fazendo algo como ...
db.students.aggregate({$project: { postcode: 1 }, $group: {_id: '$postcode', students: {$sum: 1}}})
isso funciona como esperado (retorna códigos postais como_id
e o número de alunos em cada código postal como 'alunos', mas se eu adicionar$sort
para o pipeline parece tentar classificar por toda a coleção de estudantes em vez dos resultados do$group
Operação.
o que estou tentando parecer ...
db.students.aggregate({$project: { postcode: 1 }, $group: {_id: '$postcode', students: {$sum: 1}}, $sort: {_id: -1}})
mas retorna toda a coleção e desconsidera o$project
e$group
... Estou esquecendo de algo? Eu pensei que seria capaz de classificar por número decrescente de alunos e retornar o primeiro item. Agradecemos antecipadamente por qualquer ajuda.