$topN (Acumulador de Top N)

Última atualização: 2026-10-09

$topN (Acumulador de Top N)

$topN é um acumulador que retorna os N principais documentos (ou valores de expressão) por grupo conforme uma ordem de ordenação especificada, disponível desde o MongoDB 5.2. A ordem vem do sortBy de $group; n pode ser uma constante ou expressão. Ótimo para rankings e listas de topo por grupo.

CategoriaAcumuladores
Versão do MongoDB5.2+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $group: { _id: <key>, topN: { $topN: { sortBy: { <field>: <1 or -1> }, output: <expression>, n: <number> } } } }

Retorno:Matriz dos N principais valores ou documentos por grupo

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $topN: os 3 melhores nomes por turma
db.scores.aggregate([
  { $group: { _id: '$class', top3: { $topN: { sortBy: { score: -1 }, output: '$name', n: 3 } } } }
])

Saída:

{ "_id": "A", "top3": ["Alice", "Bob", "Carol"] }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO n de $topN pode ser uma variável?
ASim, n pode ser uma expressão que referencia um campo, por exemplo '$limitCount'.
QComo $topN difere de $sort seguido de $limit?
A$topN pega os N principais dentro de cada grupo; $sort seguido de $limit pega os N principais de todo o fluxo.
QComo os empates são tratados?
AElementos empatados ficam sem ordem; use uma chave de ordenação única para estabilidade.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%