sql >> Base de Datos >  >> NoSQL >> MongoDB

OverflowError:¿MongoDB solo puede manejar entradas de hasta 8 bytes?

La especificación BSON — El tipo de datos/formato JSON extendido binario nativo de MongoDB — solo admite enteros de 32 bits (firmados) y 64 bits (firmados); 8 bytes son 64 bits.

El valor entero máximo que se puede almacenar en un int de 64 bits es:9,223,372,036,854,775,807

En su ejemplo, parece tener identificadores más grandes, por ejemplo:11,611,747,760,398,664,000

Supongo que la aplicación que genera estos datos usa tipos uint64 (sin firmar puede contener valores x2-1).

Comenzaría mirando cualquiera de estas posibles soluciones, si es posible:

  • Cambiando el otro lado para usar tipos int64 (firmados) para las ID.
  • Reemplazar los ID entrantes usando ObjectId() a medida que obtiene un ~ GUID de 12 bytes para sus identificaciones únicas.