$substr (Substring)

Última atualização: 2026-10-09

$substr (Substring)

$substr extrai uma substring começando em uma posição dada com um comprimento dado. Desde o MongoDB 3.4, $substr é um alias de $substrCP, contando posições em code points Unicode (aproximadamente caracteres), então é seguro para texto multibyte como chinês e emoji — sem caracteres quebrados. start é baseado em zero; um start negativo retorna uma string vazia, e um comprimento negativo retorna tudo a partir de start.

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

📝 Sintaxe

{ $substr: [ <expressão de string>, <início>, <comprimento> ] }

⚙️ Parâmetros

stringObrigatório; a expressão de string de origem.
posição inicialInteiro obrigatório, base zero; negativo resulta em uma string vazia.
comprimentoInteiro obrigatório; negativo retorna de start até o fim.

Retorno:A substring extraída; null se qualquer argumento for null.

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $substr: primeiros 3 dígitos de números de telefone
db.users.aggregate([
  { $project: { code: { $substr: [ '$phone', 0, 3 ] } } }
])

Saída:

{ "_id": 1, "code": "138" }
{ "_id": 2, "code": "139" }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

Q$substr e $substrCP são iguais?
ADesde a 3.4, $substr é um alias de $substrCP — comportamento idêntico.
QCortar chinês causa texto corrompido?
ANão — ele conta code points, então o chinês é seguro.
QO start pode ser negativo?
ASim — um start negativo retorna uma string vazia.
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%