$last (Acumulador de Último)
Última atualização: 2026-10-09
$last (Acumulador de Último)
$last é um acumulador que retorna um campo do último documento de um grupo — simétrico a $first e igualmente dependente da ordem, então use $sort antes. Uso típico: buscar o registro mais recente por grupo. Também pode ser usado como operador de janela em $setWindowFields.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, last: { $last: "$field" } } }
Retorno:Valor do campo do último documento do grupo (pela ordem de entrada)
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $last: preço do registro mais recente por item
db.sales.aggregate([
{ $sort: { date: 1 } },
{ $group: { _id: '$item', lastPrice: { $last: '$price' } } }
])
Saída:
{ "_id": "Pen", "lastPrice": 50 }
📌 Notas
- Simétrico a $first, com a mesma dependência de ordem
- Padrão idiomático para registro mais recente: $sort crescente por tempo e depois $last
- Funciona como operador de janela em $setWindowFields
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo obtenho o registro mais recente por grupo?
A$sort crescente por tempo e depois use $last em $group para pegar o valor mais recente.
QO que acontece se $last não for usado após ordenação?
AEle retorna o último documento na ordem de entrada, o que geralmente não tem significado.
QQual é a diferença entre $last e $top?
A$top pega o melhor por uma regra de ordenação; $last pega o fim na ordem de entrada. Semânticas diferentes.