MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

OverflowError:MongoDB може да обработва само до 8-байтови int?

BSON спецификация — Родният бинарен разширен JSON формат / тип данни на MongoDB — поддържа само 32 бита (подписани) и 64 бита (подписани) цели числа — 8 байта са 64 бита.

Максималната целочислена стойност, която може да бъде съхранена в 64-битов int е:9,223,372,036,854,775,807

Във вашия пример изглежда, че имате по-големи идентификатори, например:11,611,747,760,398,664,000

Предполагам, че приложението, генериращо тези данни, използва типове uint64 (unsigned може да съдържа x2-1 стойности).

Бих започнал, като разгледам някое от тези потенциални решения, ако е възможно:

  • Промяна на другата страна за използване на типове int64 (подписани) за идентификаторите.
  • Замяна на входящите идентификатори с помощта на ObjectId() като след това получавате 12-байтов ~ GUID за вашите уникални идентификатори.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cursor.skip() на индексирани ключове винаги ли е по-бърз?

  2. Как да дефинирам методи в модел Mongoose?

  3. Как да получите тръбопроводния обект в Scrapy spider

  4. използвайки module.exports по необичаен начин

  5. Вграждане на отговори на съобщения в родител на съобщение с mongodb, използвайки mongoid