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值并返回更新后的值。
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值并返回更新后的值。
相关文章推荐
- (一)MongoDB简介
- 数据库-mongodb-基础
- MongoDB固定集合(Capped Collections)
- MongoDB ObjectId
- MongoDB监控
- MongoDB分片
- MongoDB复制
- MongoDB基本管理命令操作
- windows平台安装并使用MongoDB
- MongoDB理解
- 使用Java查询MongoDB数据库并封装成查询服务实践
- linux部署mongodb及基本操作
- MongoDB的常规备份策略
- laravel 连接mongodb
- mongodb调优那些事(一)-系统设置
- mongodb远程连接
- mongodb用户管理总结
- 全文检索引擎Solr系列——整合MySQL、MongoDB
- mongodb调优那些事(二)-索引
- Mongodb 使用场景和不使用场景