2017-07-25 42 views
-2

是否有任何方法或軟件包可以幫助我將自動增量添加到現有集合中?互聯網全是關於如何在創建收藏之前添加AI的信息,但在收集已經存在時我沒有找到有關如何添加AI的信息...如何將自動增量添加到mongodb/node.js中的現有集合中?

+0

什麼你的意思是自動增量? Mongo的_id是自動生成的。 –

+0

@Jeremy Thille 1,2,3,4,5 ......等等。 –

+0

Mongodb沒有本地自動遞增整數序列AFAIK。 –

回答

1

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

要更新現有集合中已有的所有值, HOULD工作(對於空{},你可以把你的情況,如果你想只更新部分文件):

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

現在你可以插入新記錄到您現有的集合爲:

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