MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

OverflowError:MongoDB może obsłużyć tylko do 8-bajtowych intów?

specyfikacja BSON — Natywny binarny rozszerzony format JSON / typ danych MongoDB — obsługuje tylko 32-bitowe (ze znakiem) i 64-bitowe (ze znakiem) liczby całkowite — 8 bajtów to 64 bity.

Maksymalna wartość całkowita, która może być przechowywana w 64-bitowym int to:9 223 372 036 854 775 807

Wygląda na to, że w swoim przykładzie masz większe identyfikatory, na przykład:11 611 747 760 398 664 000

Zgaduję, że aplikacja generująca te dane używa typów uint64 (niepodpisane może przechowywać wartości x2-1).

Zacznę od przyjrzenia się którymkolwiek z tych potencjalnych rozwiązań, jeśli to możliwe:

  • Zmiana drugiej strony na użycie typów int64 (podpisany) dla identyfikatorów.
  • Zastępowanie przychodzących identyfikatorów za pomocą ObjectId() ponieważ otrzymasz 12-bajtowy ~ GUID dla swoich unikalnych identyfikatorów.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Jak wykonać zapytanie za pomocą operatora $date?

  2. W MongoDB, jeśli kolekcja jest usuwana, indeksy są również usuwane automatycznie?

  3. Jaka jest różnica między MongoTemplate i MongoRepository firmy Spring Data?

  4. Uwierzytelnianie rmongodb zawsze kończy się niepowodzeniem

  5. MongoDb:różnica między $push/$addtoset