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

Mongodb ObjectID có phải là duy nhất giữa các tài liệu không?

Nó là duy nhất cho tất cả các mục đích thực tế. Tính không duy nhất được đề cập là một điều khá lý thuyết.

ObjectId được xây dựng hết

  • dấu thời gian (giây kể từ kỷ nguyên)
  • một số nhận dạng máy
  • id quy trình
  • và bộ đếm 3 byte bắt đầu bằng giá trị ngẫu nhiên mỗi giây

Vì vậy, ở mức trung bình, trừ khi bạn viết vượt quá 3080 tài liệu mỗi giây cho mỗi máy khách, bạn nên lưu. Điều cần lưu ý là _id có một ràng buộc duy nhất:Ngay cả khi nếu bạn cố gắng viết cùng một ObjectId hai lần, sẽ có một ngoại lệ.

Lưu ý:ngay cả các thuật toán băm như MD5 hoặc (ở mức độ thấp hơn) SHA256 cũng có một chút cơ hội va chạm. Nhưng với một hạn chế duy nhất, bạn vẫn an toàn.

Chỉnh sửa :Vì một ngoại lệ được đưa ra trong trường hợp Rất, RẤT hiếm khi hai ObjectIds giống hệt nhau được tạo và cố gắng viết đồng thời, bạn chỉ cần xử lý chúng bằng cách tạo một ObjectId mới và cố gắng lưu lại tài liệu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Di chuyển sang MongoDB:cách truy vấn GROUP BY + WHERE

  2. Làm cách nào để lấy tên từ id trong mongoose?

  3. Bắt đầu với PHP và MongoDB

  4. Hiện tùy chọn lưu trữ MongoDB mà tiện ích bổ sung Heroku mLab đang bị xóa

  5. Lỗi nghiêm trọng:Không tìm thấy lớp 'MongoDate' khi sử dụng trình điều khiển php mongodb 1.1.2 và PHP 7.0.2 - Laravel 5.1