$push (Reunir em Array)
Última atualização: 2026-10-09
$push (Reunir em Array)
$push é um acumulador que anexa o resultado da expressão de cada documento a um array durante $group, na ordem de entrada (geralmente não garantida como estável). Ele reúne os detalhes do grupo em um único documento. Use $sort antes quando precisar de uma ordem estável.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, items: { $push: "$field" } } }
Retorno:Matriz de todos os resultados de expressão no grupo
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $push: reúne itens por cliente
db.orders.aggregate([
{ $group: { _id: '$cust_id', items: { $push: '$item' } } }
])
Saída:
{ "_id": "A123", "items": ["Pen", "Book"] }
📌 Notas
- A ordem acompanha a entrada e não é garantida como estável
- Um $sort anterior torna a ordem determinística
- Apare com $slice; deduplique com $addToSet
🏷️ Tags Relacionados
💡 Casos Relacionados
Introdução aos pipelines de agregação: o método `aggregate` e o estágio básico
$facet + $bucket + Pesquisa de texto/geoespacial
$lookup e associações com múltiplos conjuntos
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QA ordem da saída de $push é estável?
ANão estritamente; use $sort antes no pipeline quando a ordem importar.
QQual é a diferença entre $push e $addToSet?
A$push mantém duplicatas; $addToSet deduplica.
QComo coleto apenas os primeiros elementos?
ASiga $push com $slice, ou use $sort e $limit antes de $group.