$strLenBytes (Comprimento em Bytes)
Última atualização: 2026-10-09
$strLenBytes (Comprimento em Bytes)
$strLenBytes retorna o comprimento em bytes UTF-8 de uma string — essencial para estimativa de armazenamento e limites de tamanho de campo. Para ASCII puro, bytes equivalem a caracteres; o chinês ocupa 3 bytes por caractere e emoji geralmente 4. Aceita apenas strings; outros tipos geram erro, então converta com $toString antes. Os resultados podem diferir do $strLenCP baseado em code points.
| Categoria | String |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $strLenBytes: <expressão de string> }
⚙️ Parâmetros
| string | Obrigatório; a expressão de string a medir. |
|---|
Retorno:O comprimento em bytes UTF-8 como inteiro.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $strLenBytes: tamanho em bytes dos títulos de artigos
db.articles.aggregate([
{ $project: { sizeBytes: { $strLenBytes: '$title' } } }
])
Saída:
{ "_id": 1, "sizeBytes": 42 }
{ "_id": 2, "sizeBytes": 36 }
📌 Notas
- Um caractere chinês tem 3 bytes — não é a contagem de caracteres
- Entrada que não é string gera erro — converta com $toString
- Os resultados diferem de $strLenCP quando existem caracteres multibyte
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQuantos bytes tem um caractere chinês?
A3 bytes em UTF-8.
QQuando difere de $strLenCP?
ACom chinês ou emoji eles diferem; ASCII puro coincide.
QPode impor limites de tamanho de campo?
ASim — combine com $match para filtrar registros acima do limite.