Long (Inteiro de 64 bits)
Última atualização: 2026-10-09
Long (Inteiro de 64 bits)
Long é um inteiro com sinal de 64 bits (tipo BSON int64), cerca de ±9,2×10^18, construído com `Long(42)` ou o alias `NumberLong(42)`. Use-o para timestamps em milissegundos, contadores grandes e ids grandes. Valores além do inteiro seguro do JavaScript (cerca de 9×10^15) devem ser construídos a partir de strings para evitar perda de precisão.
| Categoria | Tipos BSON |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
Long(<integer>)
Long("<large number string>")
NumberLong("9223372036854775807")
Retorno:Retorna um inteiro BSON Long (int64)
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// Long: inteiro grande de 64 bits
use shop
db.stats.insertOne({ total: Long('9223372036854775807') })
db.stats.find({ total: { $gt: Long(1000) } })
Saída:
{ _id: ObjectId('...'), total: Long('9223372036854775807') }
📌 Notas
- Construa valores além de Number.MAX_SAFE_INTEGER a partir de strings
- Os nomes de tipo variam por driver: Long (Java/Node), Int64 (Python)
- Misturar Int32 e Long quebra a consistência de $type
🏷️ Tags Relacionados
💡 Casos Relacionados
Documentos e BSON: a base dos dados do MongoDB
Inserção de documentos: uma explicação detalhada sobre `insertOne` e `insertMany`
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QLong é o mesmo que NumberLong?
ANão — NumberLong é o alias de Long no mongosh; ambos produzem o tipo int64.
QQuão grande um Long pode guardar?
A64 bits com sinal, cerca de ±9,2×10^18 — muito além da faixa de inteiros seguros do JS.
QPor que construir Long a partir de uma string?
ALiterais numéricos acima de ~9×10^15 perdem precisão no JS; a construção por string permanece exata.