$toLong (Converter para Inteiro de 64 Bits)
Última atualização: 2026-10-09
$toLong (Converter para Inteiro de 64 Bits)
$toLong converte um valor em um inteiro assinado de 64 bits (long BSON), com um intervalo muito maior do que o int — ideal para timestamps, IDs e outros inteiros grandes. Ele aceita números, strings numéricas e booleanos; null permanece null. Usos típicos: converter strings de ID de alta precisão em números ou lidar com timestamps em segundos/milissegundos. Strings precisam ser literais inteiros. É o atalho de $convert para to: long; misturar int e long em aritmética promove automaticamente para long.
| Categoria | Conjunto, Condição e Conversão |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $toLong: <expressão> }
⚙️ Parâmetros
| expressão | Um número, string numérica ou booleano. |
|---|
Retorno:Um long; null quando a entrada é null
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $toLong: interpretar uma string de timestamp em número
db.events.aggregate([
{ $project: {
ts: { $toLong: '$tsStr' }
} }
])
Saída:
{ '_id': 1, 'ts': 1780000000000 }
📌 Notas
- O intervalo de 64 bits comporta confortavelmente timestamps em milissegundos
- Strings precisam ser literais inteiros ou a conversão gera erro
- Misturar int e long promove automaticamente para long
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQuando devo usar $toLong?
AQuando os valores podem ultrapassar cerca de 2,1 bilhões, como timestamps e IDs grandes.
QO que acontece quando é misturado com $toInt?
AO resultado promove automaticamente para long.
QO que null retorna?
AEle retorna null.