updateMany() (Atualizar Vários Documentos)
Última atualização: 2026-10-09
updateMany() (Atualizar Vários Documentos)
updateMany() atualiza todos os documentos que corresponderem a um filtro, ex.: `db.users.updateMany({ age: { $lt: 18 } }, { $set: { isTeen: true } })`. Diferente de updateOne(), que altera apenas a primeira correspondência, ele aplica a atualização a todos os documentos correspondentes — útil para mudanças em lote de status ou adição de campos em todo lugar. O resultado informa matchedCount (correspondências encontradas) e modifiedCount (documentos efetivamente alterados).
| Categoria | Escrita |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.updateMany(<filter>, <update>, { upsert: <bool> })
⚙️ Parâmetros
| filtro | Objeto de predicado; suporta operadores de consulta. |
|---|---|
| atualização | Objeto de operadores de atualização aplicado a cada correspondência. |
| upsert | Opcional. Insere um documento quando nada corresponde; o padrão é false. |
Retorno:UpdateResult: { acknowledged, matchedCount, modifiedCount, upsertedId }.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// updateMany: marca todos com mais de 30 anos como senior
db.users.updateMany(
{ age: { $gt: 30 } },
{ $set: { isSenior: true } }
)
Saída:
{ acknowledged: true, matchedCount: 3, modifiedCount: 3, upsertedId: null }
📌 Notas
- Atualiza todas as correspondências; cuidado com o filtro vazio {} que atualiza a coleção inteira
- modifiedCount pode ser menor que matchedCount quando os valores não mudam
- Em coleções grandes, divida o trabalho em lotes e observe o desempenho
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO updateMany atualiza todos os documentos correspondentes?
ASim, todos os documentos correspondentes são atualizados. Passar um filtro vazio {} atualiza a coleção inteira, então tenha cuidado.
QQual é a diferença entre updateMany e updateOne?
AupdateOne() atualiza apenas a primeira correspondência; updateMany() atualiza todas. Escolha updateMany() para mudanças em lote.
QPor que modifiedCount é menor que matchedCount?
AAlguns documentos correspondentes já contêm os valores alvo, então o MongoDB os conta como inalterados e os exclui de modifiedCount.