$indexOfCP (Índice de Substring em Code Points)

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

$indexOfCP (Índice de Substring em Code Points)

$indexOfCP retorna o índice em code points (caracteres) da primeira ocorrência de uma substring, ou -1 quando não encontrada. Conta em caracteres, combinando com a percepção humana e sendo seguro com chinês e emoji — a escolha preferida para trabalho com texto. start e end opcionais delimitam a janela, também em code points. Combina com $substrCP e $strLenCP para fatias. Qualquer argumento null resulta em null.

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

📝 Sintaxe

{ $indexOfCP: [ <expressão de string>, <substring>, <início>, <fim> ] }

⚙️ Parâmetros

stringObrigatório; a string de origem.
substringObrigatório; a substring a localizar.
início/fimJanela de pesquisa opcional, em pontos de código.

Retorno:O índice de ponto de código (base zero); -1 quando não encontrado; null se qualquer argumento for null.

▶ Exemplo

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

// $indexOfCP: localizar o @ nos e-mails
db.users.aggregate([
  { $project: { at: { $indexOfCP: [ '$email', '@' ] } } }
])

Saída:

{ "_id": 1, "at": 6 }
{ "_id": 2, "at": -1 }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que é retornado quando não é encontrado?
A-1.
QCoincide com $indexOfBytes?
AIgual para ASCII puro; diferente com chinês — $indexOfCP dá posições em caracteres.
QE uma substring vazia?
ARetorna o índice inicial (0 por padrão), como a maioria das linguagens faz.
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%