$top (Acumulador de Topo)
Última atualização: 2026-10-09
$top (Acumulador de Topo)
$top é um acumulador que retorna o documento do topo de um grupo conforme uma ordem de ordenação especificada — o documento inteiro, não um único campo — disponível desde o MongoDB 5.2. A ordem vem do sortBy de $group, não da sequência de entrada, ao contrário de $first. Use $topN para vários.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 5.2+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, top: { $top: { sortBy: { <field>: <1 or -1> }, output: <expression> } } } }
Retorno:Documento do topo do grupo conforme a ordem sortBy
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $top: maior preço por item via sortBy
db.sales.aggregate([
{ $group: { _id: '$item', top: { $top: { sortBy: { price: -1 }, output: '$price' } } } }
])
Saída:
{ "_id": "Pen", "top": 80 }
📌 Notas
- Exige MongoDB 5.2 ou posterior
- A ordem vem do sortBy de $group, independente da ordem de entrada
- output seleciona a expressão; omita-o para retornar o documento inteiro
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $top e $first?
A$top pega o melhor por uma regra de ordenação explícita; $first segue a ordem de entrada.
QQual versão o $top exige?
AMongoDB 5.2 ou posterior.
Q$top pode retornar o documento inteiro?
ASim, omitir output retorna o documento inteiro.