$replaceAll (Substituir Todas as Correspondências)
Última atualização: 2026-10-09
$replaceAll (Substituir Todas as Correspondências)
$replaceAll substitui toda ocorrência de uma substring por uma string fornecida — ideal para limpeza em lote de dados ou unificação de delimitadores. find deve ser não vazio ou gera erro; quando ausente, a entrada é retornada inalterada. É uma substituição literal, diferindo de $replaceOne por substituir todas em vez da primeira. Use $regexReplace para correspondência por padrão. Entrada null ou ausente resulta em null.
| Categoria | String |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $replaceAll: { input: <expressão de string>, find: <procura>, replacement: <substituição> } }
⚙️ Parâmetros
| input | Obrigatório; a string a processar. |
|---|---|
| find | Obrigatório; uma string de pesquisa não vazia. |
| replacement | Obrigatório; a string de substituição. |
Retorno:A string substituída; null se a entrada for null.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $replaceAll: remover todos os hífens dos números de telefone
db.users.aggregate([
{ $project: { clean: { $replaceAll: { input: '$phone', find: '-', replacement: '' } } } }
])
Saída:
{ "_id": 1, "clean": "13800138000" }
{ "_id": 2, "clean": "13900139000" }
📌 Notas
- Substitui toda ocorrência — a contraparte de $replaceOne
- Um find vazio gera erro
- Mais eficiente do que repetir $replaceOne em um laço
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença para $replaceOne?
A$replaceOne troca a primeira; $replaceAll troca toda ocorrência.
QFunciona com regex?
ANão — use $regexReplace para regex.
QA substituição pode ser vazia?
ASim — ela deleta toda ocorrência de find.