$firstN (Acumulador de Primeiros N)
Última atualização: 2026-10-09
$firstN (Acumulador de Primeiros N)
$firstN é um acumulador que retorna um array dos valores de um campo dos primeiros N documentos de um grupo (na ordem de entrada), disponível desde o MongoDB 5.2. Ele se relaciona com $first como $topN se relaciona com $top, mas segue a ordem de entrada em vez de uma regra de ordenação. n pode ser constante ou expressão.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 5.2+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, firstN: { $firstN: { input: <expression>, n: <number> } } } }
Retorno:Matriz de valores de expressão dos primeiros N documentos do grupo
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $firstN: preços dos 3 primeiros registros por item
db.sales.aggregate([
{ $sort: { date: 1 } },
{ $group: { _id: '$item', first3: { $firstN: { input: '$price', n: 3 } } } }
])
Saída:
{ "_id": "Pen", "first3": [20, 25, 30] }
📌 Notas
- Exige MongoDB 5.2 ou posterior
- A ordem depende da entrada, então use $sort antes para dar sentido
- n aceita uma expressão para contagens dinâmicas
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $firstN e $topN?
A$firstN pega os primeiros N na ordem de entrada; $topN pega os N principais por uma regra sortBy.
QPreciso ordenar antes?
AA ordem segue a entrada; use $sort por tempo antes para pegar os N mais antigos.
QE se n exceder o tamanho do grupo?
AEle retorna todos os valores do grupo.