$lastN (Acumulador de Últimos N)
Última atualização: 2026-10-09
$lastN (Acumulador de Últimos N)
$lastN é um acumulador que retorna um array dos valores de um campo dos últimos N documentos de um grupo (na ordem de entrada), disponível desde o MongoDB 5.2 — simétrico a $firstN. Frequentemente usado para buscar os N registros mais recentes por grupo; dependente da ordem, então use $sort antes. n pode ser constante ou expressão.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 5.2+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, lastN: { $lastN: { input: <expression>, n: <number> } } } }
Retorno:Matriz de valores de expressão dos últimos N documentos do grupo
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $lastN: preços dos 3 registros mais recentes por item
db.sales.aggregate([
{ $sort: { date: 1 } },
{ $group: { _id: '$item', last3: { $lastN: { input: '$price', n: 3 } } } }
])
Saída:
{ "_id": "Pen", "last3": [50, 55, 60] }
📌 Notas
- Exige MongoDB 5.2 ou posterior
- A ordem depende da entrada; use $sort antes de pegar os mais recentes
- n aceita uma expressão para contagens dinâmicas
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo obtenho os N mais recentes por grupo?
A$sort crescente por tempo e depois use $lastN dentro de $group.
QQual é a diferença entre $lastN e $bottomN?
A$lastN pega o fim na ordem de entrada; $bottomN pega os N piores por uma regra sortBy.
QE se eu não ordenar?
AO resultado não tem significado — apenas o fim na ordem de entrada.