MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

OverflowError:MongoDB hanya dapat menangani hingga 8-byte int?

Spesifikasi BSON — Format / tipe data JSON ekstensi biner asli MongoDB — hanya mendukung bilangan bulat 32 bit (ditandatangani) dan 64 bit (ditandatangani) — 8 byte menjadi 64 bit.

Nilai integer maksimum yang dapat disimpan dalam int 64 bit adalah:9.223.372.036.854.775.807

Dalam contoh Anda, Anda tampaknya memiliki id yang lebih besar, misalnya:11,611,747,760,398,664,000

Saya menduga aplikasi yang menghasilkan data ini menggunakan jenis uint64 (unsigned dapat menyimpan nilai x2-1).

Saya akan mulai dengan melihat salah satu dari solusi potensial ini, jika memungkinkan:

  • Mengubah sisi lain untuk menggunakan tipe int64 (bertanda tangan) untuk ID.
  • Mengganti ID yang masuk menggunakan ObjectId() saat Anda mendapatkan 12 byte ~ GUID untuk ID unik Anda.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah operasi upsert Mongoose memperbarui/memperbarui nilai skema default?

  2. Penggunaan collation di mongodb $regex

  3. Mengapa mongodb tidak memberi saya lebih dari 100 dokumen?

  4. Mongo Shell - Konsol/Log Debug

  5. $ Komposer tidak dapat menemukan ekstensi mongodb, diperlukan ekstensi Mongodb