$substrCP (Substring por Code Points)

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

$substrCP (Substring por Code Points)

$substrCP extrai uma substring contando posições em code points Unicode (aproximadamente caracteres). É totalmente seguro para texto multibyte, como chinês, japonês e emoji, o que o torna o operador recomendado para texto visível ao usuário. Comparado ao $substrBytes, que conta bytes, sua semântica coincide com a forma como humanos contam caracteres. Start negativo resulta em string vazia; length negativo resulta no restante.

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

📝 Sintaxe

{ $substrCP: [ <expressão de string>, <início em code points>, <comprimento em code points> ] }

⚙️ Parâmetros

stringObrigatório; a expressão de string de origem.
posição inicial em code pointsInteiro obrigatório em pontos de código, base zero.
comprimento em code pointsInteiro obrigatório em pontos de código.

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):

// $substrCP: primeiros 2 caracteres de apelidos
db.users.aggregate([
  { $project: { nickname: { $substrCP: [ '$name', 0, 2 ] } } }
])

Saída:

{ "_id": 1, "nickname": "ひか" }
{ "_id": 2, "nickname": "たろ" }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQuantos caracteres tem um emoji?
AA maioria dos emojis é um code point (conta como 1), mas emojis compostos podem ocupar vários.
QQuando escolher $substrCP em vez de $substrBytes?
AUse $substrCP para texto visível ao usuário; $substrBytes para contagens exatas de bytes.
QE se o comprimento exceder a string?
AEle retorna o que resta — sem erro.
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%