$pull (Remover Elementos Correspondentes)
Última atualização: 2026-10-09
$pull (Remover Elementos Correspondentes)
$pull remove de um array todos os elementos que são iguais a um valor ou satisfazem uma condição. `{ $pull: { tags: 'spam' } }` remove todo 'spam'; `{ $pull: { scores: { $lt: 60 } } }` remove toda pontuação abaixo de 60. Ele remove todas as correspondências, não apenas uma — a ferramenta padrão para limpar arrays.
| Categoria | Atualização de Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $pull: { <campo de array>: <valor> | <condição> } }
⚙️ Parâmetros
| campo de array | O campo de matriz a limpar. |
|---|---|
| valor ou condição | Um valor de igualdade ou condição de consulta, por exemplo 'spam' ou { $lt: 60 }. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $pull: remove todas as tags spam
db.articles.updateOne(
{ _id: 1 },
{ $pull: { tags: 'spam' } }
)
// Remove pontuações abaixo de 60
db.students.updateOne(
{ _id: 1 },
{ $pull: { scores: { $lt: 60 } } }
)
Saída:
// Todas as tags spam e todas as pontuações abaixo de 60 são removidas
📌 Notas
- Remove todos os elementos correspondentes, não apenas um
- Condições aceitam operadores ($lt, $in, $gt, etc.)
- Para arrays de documentos, corresponda nos campos deles
🏷️ 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 $pull e $pop?
A$pull remove por valor ou condição em qualquer lugar; $pop remove apenas o primeiro ou o último.
Q$pull pode remover por condição?
ASim, condições suportam operadores de consulta, ex.: { $pull: { scores: { $lt: 60 } } }.
Q$pull remove todas as correspondências ou apenas uma?
ATodos os elementos correspondentes são removidos.