$push (Acrescentar ao Array)
Última atualização: 2026-10-09
$push (Acrescentar ao Array)
$push acrescenta um ou mais elementos ao fim de um array. `{ $push: { items: 'pen' } }`; para vários valores de uma vez, combine com $each. Ele também compõe com $position (ponto de inserção), $slice (limite de tamanho) e $sort (ordenação) para manutenção avançada de arrays. É o operador de atualização de array mais usado.
| Categoria | Atualização de Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $push: { <campo de array>: <valor> } }
⚙️ Parâmetros
| campo de array | O campo de matriz ao qual acrescentar. |
|---|---|
| valor | O valor a acrescentar, ou a forma { $each: [...] }. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $push: acrescenta um elemento
// Duplicatas são permitidas
db.carts.updateOne(
{ _id: 1 },
{ $push: { items: 'pen' } }
)
// Acrescenta vários de uma vez
// Exige $each
db.carts.updateOne(
{ _id: 1 },
{ $push: { items: { $each: ['book', 'ruler'] } } }
)
Saída:
// items ganha pen, depois book e ruler; duplicatas permitidas
📌 Notas
- Acrescenta no fim por padrão; use $addToSet para deduplicação
- Acréscimos em lote exigem $each
- Combine $position/$slice/$sort para controlar posição e tamanho
🏷️ Tags Relacionados
💡 Casos Relacionados
Consultas a matrizes e documentos aninhados
Prática: CRUD para um sistema de comentários de blog
Atualização do documento: Uma explicação detalhada sobre `updateOne` e `updateMany`
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $push e $addToSet?
A$push acrescenta e permite duplicatas; $addToSet deduplica primeiro.
Q$push pode inserir em uma posição específica?
ASim, com $position para definir o índice.
Q$push pode limitar o tamanho do array?
ASim, com $slice — ex.: manter apenas os 10 mais recentes.