2017-09-25 14 views
1

這是一個正確的原因,爲每個集合在mongodb中創建自動增量方法?這是一個正確的爲什麼在mongodb中創建自動增量?

function counter(colName, callback) 
    { 
     MongoClient.connect(url, function(err, db){ 
      db.collection(colName).find().count(callback); 
     }); 

    } 
    function myInsert(obj, colName) 
    { 
     MongoClient.connect(url, function(err, db){ 
      counter(colName, function(err, data){ 
       obj._id=data+1; 
       console.log(obj); 
       db.collection(colName).insert(obj, function(err, res){ 
        console.log("Inserted"); 
       }); 
      }); 

     }); 

    } 
    myInsert({ "name" : "India" }, "hello"); 
+0

可能的重複[是否MongoDB提供了一種方法來生成順序值?](https://stackoverflow.com/questions/29523127/does-mongodb-provide-a-way-to-generate-sequential-values) –

回答

0

這可以通過兩種方法來實現。

1)Counters Collection

使用一個單獨的計數器集合來跟蹤所用的最後一個數字序列。 _id字段包含序列名稱,seq字段包含序列的最後一個值。

2)Optimistic Loop

在這個模式中,一個樂觀環路來計算遞增_id值,並且試圖插入與所計算的值_id一個文件。如果插入成功,則循環結束。否則,循環將遍歷可能的_id值,直到插入成功。

相關問題