MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

OverflowError :MongoDB ne peut gérer que des entiers de 8 octets maximum ?

La spécification BSON — Le format/type de données JSON étendu binaire natif de MongoDB — ne prend en charge que les entiers 32 bits (signé) et 64 bits (signé) — 8 octets étant 64 bits.

La valeur entière maximale pouvant être stockée dans un int 64 bits est :9 223 372 036 854 775 807

Dans votre exemple, vous semblez avoir des identifiants plus grands, par exemple :11 611 747 760 398 664 000

Je suppose que l'application générant ces données utilise des types uint64 (unsigned peut contenir des valeurs x2-1).

Je commencerais par examiner l'une ou l'autre de ces solutions potentielles, si possible :

  • Changement de l'autre côté pour utiliser les types int64 (signés) pour les identifiants.
  • Remplacement des identifiants entrants à l'aide de ObjectId() car vous obtenez alors un ~ GUID de 12 octets pour vos identifiants uniques.