$maxN (Acumulador de N Maiores)

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

$maxN (Acumulador de N Maiores)

$maxN é um acumulador que retorna um array dos N maiores valores distintos de um campo em um grupo, disponível desde o MongoDB 5.2. Não é preciso especificar ordenação — ele pega os N maiores valores; a ordem do resultado não é garantida. Útil para estatísticas de top-N de valores por grupo.

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

📝 Sintaxe

{ $group: { _id: <key>, maxN: { $maxN: { input: <expression>, n: <number> } } } }

Retorno:Matriz dos N maiores valores distintos no grupo

▶ Exemplo

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

// $maxN: as 3 maiores notas distintas por turma
db.scores.aggregate([
  { $group: { _id: '$class', topScores: { $maxN: { input: '$score', n: 3 } } } }
])

Saída:

{ "_id": "A", "topScores": [98, 95, 92] }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

Q$maxN deduplica?
ASim, ele retorna um conjunto de valores máximos distintos.
QQual é a diferença entre $maxN e $topN?
A$maxN pega os N maiores valores distintos; $topN pega os N principais documentos por uma regra sortBy.
QO resultado vem ordenado?
AA ordem não é garantida; use $sort no resultado se precisar.
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%