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

làm cách nào để tôi có thể tự động tăng một trường trong mongodb bằng cách sử dụng mã java?

MongoDB tự động tạo một id cho mọi đối tượng được chèn vào nó. Bạn không cần tạo id của riêng mình.

Nếu bạn cần một id số nguyên tăng dần thì bạn sẽ gặp phải tất cả các loại vấn đề đồng bộ hóa phân tán - nó thực sự khá khó để giải quyết đúng cho các trường hợp không tầm thường.

Để tạo một id duy nhất, cách đơn giản nhất tôi có thể nghĩ ra:

  • đặt một chỉ mục trên cột id với một ràng buộc duy nhất.
  • để chèn một truy vấn tài liệu vào chỉ mục cho số cao nhất, hãy thêm 1, sử dụng đó làm id.
  • nếu chèn không thành công do thử lại chỉ mục trùng lặp

Nó liên quan đến một vài chuyến đi vòng quanh nhưng phải mạnh mẽ và với chỉ mục được thực hiện khá nhanh.

Nếu bạn chỉ có một vị trí viết những thông tin này, bạn có thể chuyển id trong AtomicInteger cục bộ và chỉ thực hiện toàn bộ quy trình khứ hồi nếu bạn phát hiện có va chạm, sau đó cập nhật AtomicInteger.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn Mongoose near (...) trên trường được lập chỉ mục 2dsphere không trả về kết quả hợp lệ

  2. mongodb không thể khởi động trên windows?

  3. Tạo Chỉ mục không gian địa lý 2dsphere cho các truy vấn hình cầu trong MongoDB

  4. TypeError:Không thể sử dụng toán tử 'in' để tìm kiếm '_id' trong [{}]

  5. Xác thực Python Pymongo không thành công