MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

OverflowError:MongoDB só pode lidar com ints de até 8 bytes?


A especificação BSON — Formato/tipo de dados JSON estendido binário nativo do MongoDB — suporta apenas inteiros de 32 bits (assinados) e 64 bits (assinados) — 8 bytes sendo 64 bits.

O valor inteiro máximo que pode ser armazenado em um int de 64 bits é:9.223.372.036.854.775.807

No seu exemplo, você parece ter IDs maiores, por exemplo:11.611.747.760.398.664.000

Suponho que o aplicativo que gera esses dados esteja usando tipos uint64 (unsigned pode conter valores x2-1).

Eu começaria olhando para qualquer uma dessas soluções potenciais, se possível:
  • Alterar o outro lado para usar tipos int64 (assinados) para os IDs.
  • Substituir os IDs recebidos usando ObjectId() como você obtém um ~ GUID de 12 bytes para seus IDs exclusivos.