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

Làm cách nào để thêm số tự động vào bộ sưu tập hiện có trong mongodb / node.js?

MongoDB không có chức năng tăng tự động có sẵn.

Tạo một bộ sưu tập mới để theo dõi giá trị trình tự cuối cùng được sử dụng để chèn:

db.createCollection("counter")

Nó sẽ chỉ giữ một bản ghi là:

db.counter.insert({_id:"mySequence",seq_val:0})

Tạo một hàm JavaScript dưới dạng:

function getNextSequenceVal(seq_id){
   // find record with id seq_id and update the seq_val by +1
   var sequenceDoc = db.counter.findAndModify({
      query:{_id: seq_id},
      update: {$inc:{seq_val:1}},
      new:true
   });

   return sequenceDoc.seq_val;
}

Để cập nhật tất cả các giá trị đã có trong bộ sưu tập hiện có của bạn, điều này sẽ hoạt động (Đối với {} trống, bạn có thể đặt các điều kiện của mình nếu bạn chỉ muốn cập nhật một số tài liệu):

db.myCollection.update({},
   {$set:{'_id':getNextSequenceVal("mySequence")}},{multi:true})

Giờ đây, bạn có thể chèn các bản ghi mới vào bộ sưu tập hiện có của mình dưới dạng:

db.myCollection.insert({
   "_id":getNextSequenceVal("mySequence"),
   "name":"ABC"
})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách hoạt động của Toán tử cập nhật $ set trong MongoDB

  2. Tại sao MongoDB không sử dụng giao điểm chỉ mục?

  3. Giống như tìm kiếm trong MongoDB với thư viện Monk

  4. Nhập các lớp miền từ mô-đun GORM-độc lập vào Grails

  5. Meteor Truy vấn người dùng khác qua email