deleteMany() (Excluir Vários Documentos)
Última atualização: 2026-10-09
deleteMany() (Excluir Vários Documentos)
deleteMany() remove todos os documentos que corresponderem a um filtro e retorna deletedCount. É o cavalo de batalha para limpezas em massa, como purgar logs obsoletos ou desativar usuários. Atenção: um filtro vazio {} esvazia a coleção inteira, então verifique o filtro antes de executar. A exclusão é irreversível — para operações arriscadas, avalie primeiro o impacto com `db.users.countDocuments({ status: 'expired' })`.
| Categoria | Escrita |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.deleteMany(<filter>, { writeConcern: <options> })
⚙️ Parâmetros
| filtro | Predicado que corresponde aos documentos a excluir; {} vazio exclui todos. |
|---|---|
| writeConcern | Opcional. Write concern. |
Retorno:DeleteResult: { acknowledged, deletedCount }.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// deleteMany: exclui todos os usuários com menos de 18 anos
db.users.deleteMany({ age: { $lt: 18 } })
Saída:
{ acknowledged: true, deletedCount: 5 }
📌 Notas
- Um filtro vazio {} exclui todos os documentos da coleção — perigoso
- Para exclusões grandes, use índices para evitar varreduras completas da coleção
- Irreversível; faça backup ou avalie com countDocuments primeiro
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que acontece se deleteMany receber um filtro vazio?
AUm filtro vazio {} corresponde a tudo e exclui a coleção inteira — evite isso por acidente.
QQual é a diferença entre deleteMany e drop?
AdeleteMany() remove documentos mas mantém a coleção e os índices; drop() remove a própria coleção, incluindo índices e metadados.
QComo sei quantos documentos o deleteMany removeu?
ALeia deletedCount do resultado: const r = db.users.deleteMany({status: 'del'}); r.deletedCount.