$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.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 5.2+ |
| Idioma do Exemplo | mongosh (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
- Exige MongoDB 5.2 ou posterior
- Deduplica automaticamente — um conjunto de máximos distintos
- Ao contrário de $topN, $maxN retorna apenas valores, não documentos ordenados
🏷️ Tags Relacionados
💡 Casos Relacionados
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.