MongoDB heeft geen ingebouwde functie voor automatisch verhogen.
Maak een nieuwe verzameling om de laatste reekswaarde bij te houden die is gebruikt voor invoeging:
db.createCollection("counter")
Het zal slechts één record bevatten als:
db.counter.insert({_id:"mySequence",seq_val:0})
Maak een JavaScript-functie als:
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;
}
Om alle reeds bestaande waarden in uw bestaande verzameling bij te werken, zou dit moeten werken (Voor de lege {} kunt u uw voorwaarden plaatsen als u slechts enkele documenten wilt bijwerken):
db.myCollection.update({},
{$set:{'_id':getNextSequenceVal("mySequence")}},{multi:true})
Nu kunt u nieuwe records in uw bestaande verzameling invoegen als:
db.myCollection.insert({
"_id":getNextSequenceVal("mySequence"),
"name":"ABC"
})