$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.

CategoriaAcumuladores
Versão do MongoDB5.2+
Idioma do Exemplomongosh (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

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.
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%