$first (Acumulador de Primeiro)
Última atualização: 2026-10-09
$first (Acumulador de Primeiro)
$first é um acumulador que retorna um campo do primeiro documento de um grupo. Ele depende da ordem de entrada, então $sort antes de $group (ou o sortBy de $group desde o MongoDB 5.2) é importante. Ele também funciona como operador de janela em $setWindowFields.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, first: { $first: "$field" } } }
Retorno:Valor do campo do primeiro documento do grupo (pela ordem de entrada)
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $first: preço do registro mais antigo por item
db.sales.aggregate([
{ $sort: { date: 1 } },
{ $group: { _id: '$item', firstPrice: { $first: '$price' } } }
])
Saída:
{ "_id": "Pen", "firstPrice": 20 }
📌 Notas
- A ordem vem da entrada; use $sort antes de $group
- $group suporta sortBy desde o MongoDB 5.2
- Pode ser usado como operador de janela em $setWindowFields
🏷️ Tags Relacionados
💡 Casos Relacionados
Introdução aos pipelines de agregação: o método `aggregate` e o estágio básico
$lookup e associações com múltiplos conjuntos
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo a ordem de $first é garantida?
A$sort antes de $group, ou use sortBy dentro de $group no MongoDB 5.2 ou posterior.
QQual é a diferença entre $first e $min?
A$first pega o primeiro documento na ordem de entrada; $min pega o menor valor independentemente da ordem.
QE grupos vazios?
AGrupos vazios nunca são criados; $group emite apenas grupos reais.