$indexOfBytes (Índice de Substring em Bytes)

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

$indexOfBytes (Índice de Substring em Bytes)

$indexOfBytes retorna o índice em bytes UTF-8 da primeira ocorrência de uma substring, ou -1 quando não encontrada. start e end opcionais delimitam a janela de busca. Índices em bytes e em code points divergem com caracteres multibyte: o chinês ocupa vários bytes, então um índice em bytes pode cair no meio de um caractere — prefira $indexOfCP para texto visível ao usuário. Qualquer argumento null resulta em null.

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

📝 Sintaxe

{ $indexOfBytes: [ <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 bytes.

Retorno:O índice de byte (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):

// $indexOfBytes: localizar ERROR nas mensagens de log
db.logs.aggregate([
  { $project: { pos: { $indexOfBytes: [ '$msg', 'ERROR' ] } } }
])

Saída:

{ "_id": 1, "pos": 12 }
{ "_id": 2, "pos": -1 }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que é retornado quando a substring está ausente?
A-1.
QAs posições se deslocam com texto chinês?
ASim — um caractere chinês tem 3 bytes; prefira $indexOfCP para texto chinês.
QComo limitar o intervalo de busca?
APasse o 3º e o 4º argumentos como start e end.
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%