sql >> Databáze >  >> NoSQL >> MongoDB

Jak přidat automatický přírůstek do existující kolekce v mongodb/node.js?

MongoDB nemá vestavěnou funkci automatického přírůstku.

Vytvořte novou kolekci, abyste měli přehled o poslední hodnotě sekvence použité pro vložení:

db.createCollection("counter")

Bude obsahovat pouze jeden záznam jako:

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

Vytvořte funkci JavaScriptu jako:

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;
}

Chcete-li aktualizovat všechny již existující hodnoty ve vaší stávající sbírce, mělo by to fungovat (pro prázdnou {} můžete zadat své podmínky, pokud chcete aktualizovat pouze některé dokumenty):

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

Nyní můžete do své stávající sbírky vkládat nové záznamy jako:

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


  1. Vykreslování html s daty pomocí nodejs Express

  2. Jak přimět junit testy používat vložený mongoDB v aplikaci springboot?

  3. MongoDB:Kombinace textového vyhledávání a geoprostorového dotazu

  4. MongoDB 3 Java zkontroluje, zda existuje kolekce