MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

OverflowError:MongoDB chỉ có thể xử lý các int tối đa 8 byte?

Thông số kỹ thuật BSON - Kiểu dữ liệu / định dạng JSON nhị phân mở rộng ban đầu của MongoDB - chỉ hỗ trợ số nguyên 32 bit (có dấu) và 64 bit (có dấu) - 8 byte là 64 bit.

Giá trị số nguyên tối đa có thể được lưu trữ trong một int 64 bit là:9.223.372.036.854.775.807

Trong ví dụ của bạn, bạn dường như có id lớn hơn, ví dụ:11.611.747.760.398.664.000

Tôi đoán rằng ứng dụng tạo dữ liệu này đang sử dụng các loại uint64 (không dấu có thể chứa các giá trị x2-1).

Tôi sẽ bắt đầu bằng cách xem xét một trong các giải pháp tiềm năng này, nếu có thể:

  • Thay đổi phía bên kia để sử dụng các loại int64 (đã ký) cho các ID.
  • Thay thế các ID đến bằng ObjectId () khi bạn nhận được 12 byte ~ GUID cho các ID duy nhất của mình.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongorestore có thể lấy một đối số url duy nhất thay vì các đối số riêng biệt không?

  2. Có cách nào để khám phá những địa chỉ ip nào được kết nối với db không?

  3. errmsg:Không có máy chủ nào được mô tả trong cấu hình mới 1 cho bộ bản sao rs0 ánh xạ tới nút này, Tại sao tôi nhận được thông báo này?

  4. Làm cách nào để cập nhật / nâng cấp tài liệu trong Mongoose?

  5. Xuất bản sao băng:Ẩn các trường nhất định trong trường tài liệu mảng?