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"
})