$substrBytes (Substring por Bytes)

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

$substrBytes (Substring por Bytes)

$substrBytes extrai uma substring por posições de bytes UTF-8; tanto start quanto length contam bytes. Serve para texto puramente ASCII (onde bytes equivalem a caracteres) ou casos que exigem controle exato de bytes. Cuidado: com caracteres multibyte como chinês, um limite de byte pode cair no meio de um caractere e corromper a saída — nesse caso, mude para $substrCP baseado em code points. Start negativo resulta em string vazia; length negativo resulta no restante.

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

📝 Sintaxe

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

⚙️ Parâmetros

stringObrigatório; a expressão de string de origem.
posição inicial em bytesInteiro obrigatório em bytes, base zero.
comprimento em bytesInteiro obrigatório em bytes.

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

// $substrBytes: primeiros 10 bytes do conteúdo
db.files.aggregate([
  { $project: { head: { $substrBytes: [ '$content', 0, 10 ] } } }
])

Saída:

{ "_id": 1, "head": "hello wor" }
{ "_id": 2, "head": "MongoDB su" }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QCortar por bytes pode corromper chinês?
APossivelmente — um caractere chinês tem 3 bytes, e um limite ruim o corrompe; prefira $substrCP.
QQuando os resultados coincidem com $substrCP?
AQuando a string é ASCII puro.
QPara que serve?
ATexto puramente ASCII ou orçamento exato de bytes.
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%