MongoDB में इनबिल्ट ऑटो-इन्क्रीमेंट कार्यक्षमता नहीं है।
सम्मिलन के लिए उपयोग किए गए अंतिम अनुक्रम मान का ट्रैक रखने के लिए एक नया संग्रह बनाएं:
db.createCollection("counter")
यह केवल एक ही रिकॉर्ड रखेगा:
db.counter.insert({_id:"mySequence",seq_val:0})
एक जावास्क्रिप्ट फ़ंक्शन बनाएं:
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;
}
आपके मौजूदा संग्रह में पहले से मौजूद सभी मानों को अपडेट करने के लिए, यह काम करना चाहिए (खाली {} के लिए, आप अपनी शर्तें रख सकते हैं यदि आप केवल कुछ दस्तावेज़ अपडेट करना चाहते हैं):
db.myCollection.update({},
{$set:{'_id':getNextSequenceVal("mySequence")}},{multi:true})
अब आप अपने मौजूदा संग्रह में नए रिकॉर्ड इस प्रकार सम्मिलित कर सकते हैं:
db.myCollection.insert({
"_id":getNextSequenceVal("mySequence"),
"name":"ABC"
})