$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.

CategoriaString
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $replaceAll: { input: <expressão de string>, find: <procura>, replacement: <substituição> } }

⚙️ Parâmetros

inputObrigatório; a string a processar.
findObrigatório; uma string de pesquisa não vazia.
replacementObrigató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

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.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%