$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.
| Categoria | String |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $indexOfCP: [ <expressão de string>, <substring>, <início>, <fim> ] }
⚙️ Parâmetros
| string | Obrigatório; a string de origem. |
|---|---|
| substring | Obrigatório; a substring a localizar. |
| início/fim | Janela 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
- Baseado em zero; caracteres chineses e emojis contam como 1 cada
- Geralmente combinado com $substrCP e $strLenCP para fatias
- start/end além do comprimento da string são limitados aos limites — sem erro
🏷️ Tags Relacionados
💡 Casos Relacionados
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.