您的位置:首页 > 数据库 > Mongodb

MongoDB自动增长

2016-03-20 16:58 711 查看
我们知道,MongoDB没有像SQL一样有自动增长的功能,如果需要实现ObjectId自动增长功能,我们可以通过编程的方式来实现。步骤如下:

1. 创建一个集合用于存储自动增长的id的当前值,这里集合名称为'counters':

db.createCollection("counters")

2. 向counters中插入一个文档:

db.counters.insert({_id:"productid",key_value:0})

3. 创建Javascript函数(每次调用,counters集合中的'key_value'字段的值增加1,并返回增加后的值):

function getNextKeyValue(keyName){

var keyDocument = db.counters.findAndModify(

{

query:{_id: keyName},

update: {$inc:{key_value:1}},

new:true

});

return keyDocument.key_value;

}

4. 使用javascript函数实现自动增长:

示例:

db.products.insert({

"_id":getNextKeyValue("productid"),

"product_name":"Apple iPhone",

"category":"mobiles"})

这样就可以在Mongodb中简单实现和SQL一样的自动增长id了,实际上就是借助了一个中间集合来存放增长id的当前值,然后使用findAndModify()函数更新id值并返回更新后的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: