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

Làm cách nào để bạn triển khai ID chính tự động tăng dần trong MongoDB?

Bạn sẽ cần sử dụng lệnh findAndModify của MongoDB. Với nó, bạn có thể chọn và gia tăng một trường.

db.seq.findAndModify({
  query: {"_id": "users"},
  update: {$inc: {"seq":1}},
  new: true
});

Điều này sẽ tăng bộ đếm cho users bộ sưu tập, sau đó bạn có thể thêm vào tài liệu trước khi chèn. Vì nó là nguyên tử, bạn không phải lo lắng về các điều kiện chủng tộc dẫn đến các ID xung đột.

Nó không liền mạch như auto_increment của MySQL cờ, nhưng bạn cũng thường có tùy chọn chỉ định nhà máy ID của riêng bạn trong trình điều khiển Mongo, vì vậy bạn có thể triển khai nhà máy sử dụng findAndModify để tăng và trả về ID một cách minh bạch, dẫn đến trải nghiệm giống MySQL hơn nhiều.

Nhược điểm của cách tiếp cận này là vì mỗi lần chèn đều phụ thuộc vào khóa ghi trên bộ sưu tập trình tự của bạn, nếu bạn đang ghi nhiều, bạn có thể bị tắc nghẽn khá nhanh. Nếu bạn chỉ muốn đảm bảo rằng các tài liệu trong bộ sưu tập được sắp xếp theo thứ tự chèn, thì hãy xem Bộ sưu tập có giới hạn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tùy chỉnh deserialization

  2. Mongoose Chỉ mục duy nhất không hoạt động!

  3. asticsearch v.s. MongoDB để lọc ứng dụng

  4. Làm cách nào để sử dụng một hướng dẫn trong truy vấn shell mongodb

  5. Cách đưa nhiều hàng vào danh sách được phân tách bằng dấu phẩy trong SQL