这是一个正确的,为什么要在MongoDB中创build自动增量?

这是一个正确的,为什么要创build每个集合的自动增量方法在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"); 

这可以通过两种方法来实现。

1) 柜台collections

使用单独的计数器集合来跟踪所使用的最后一个数字序列。 _id字段包含序列名称,seq字段包含序列的最后一个值。

2) 乐观循环

在这种模式下,乐观循环会计算递增的_id值,并尝试插入带有计算的_id值的文档。 如果插入成功,则循环结束。 否则,循环将遍历可能的_id值,直到插入成功。