sql >> Database >  >> NoSQL >> MongoDB

OverflowError:MongoDB kan maximaal 8-byte ints aan?

De BSON-specificatie — MongoDB's native binaire uitgebreide JSON-indeling / gegevenstype — ondersteunt alleen 32 bit (ondertekend) en 64 bit (ondertekend) gehele getallen — 8 bytes zijn 64 bits.

De maximale integerwaarde die kan worden opgeslagen in een 64-bits int is:9,223,372,036,854,775,807

In uw voorbeeld lijkt u grotere id's te hebben, bijvoorbeeld:11.611.747.760.398.664.000

Ik vermoed dat de app die deze gegevens genereert, uint64-typen gebruikt (unsigned kan x2-1-waarden bevatten).

Ik zou beginnen met het bekijken van een van deze mogelijke oplossingen, indien mogelijk:

  • De andere kant wijzigen om int64 (ondertekende) typen voor de ID's te gebruiken.
  • De inkomende ID's vervangen met ObjectId() omdat je dan een 12 byte ~ GUID krijgt voor je unieke ID's.



  1. MongoDB automatiseren en beheren met ClusterControl

  2. Denormalisatie met Mongoose:wijzigingen synchroniseren

  3. Kan geen werkend meteor.js-project maken op een zwervende doos

  4. Hoe representeer je MongoDB GeoJSON-velden in een Mongoose-schema?