MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да добавите автоматично увеличение към съществуваща колекция в mongodb/node.js?

MongoDB няма вградена функция за автоматично увеличаване.

Създайте нова колекция, за да следите последната стойност на последователността, използвана за вмъкване:

db.createCollection("counter")

Той ще съдържа само един запис като:

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

Създайте JavaScript функция като:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Java/MongoDB заявка по дата

  2. mongoose разлика между findOneAndUpdate и update

  3. Планирайте работата на Node.js на всеки пет минути

  4. Заявки с обединения и филтри в Mongoose

  5. Кога да индексирате, какво да индексирате в Mongoid?