MongoDB自增长ID的实现
2014-12-24 10:27
253 查看
原文链接:http://duoyun.org/topic/50caa33fee680fee79000c82
这个大神用了不同的语言实现,我只写下java的demo,但是思想都是一样的。
MongoDB中有时候会需要自增长id,而不是他自维护的id,这样方便逻辑实现。
他的思想是利用mongodb中$inc操作,这个操作可以自增加1,并且是原子性操作,线程安全。
一开始的思想是利用java把javascript代码执行到mongodb中,再调用js function获取返回值。可是网上查的貌似没有这种方法。
于是就利用javaapi自带的方法。具体代码如下:
mongodb里面的结构是这样:
> db.auto_id.find() ;
{ "_id" : "auto_increment_id", "next" : 1 }
用起来还挺方便。
这个大神用了不同的语言实现,我只写下java的demo,但是思想都是一样的。
MongoDB中有时候会需要自增长id,而不是他自维护的id,这样方便逻辑实现。
他的思想是利用mongodb中$inc操作,这个操作可以自增加1,并且是原子性操作,线程安全。
一开始的思想是利用java把javascript代码执行到mongodb中,再调用js function获取返回值。可是网上查的貌似没有这种方法。
于是就利用javaapi自带的方法。具体代码如下:
public static Object autoIncre(DB db, String seq){ DBCollection auto = db.getCollection(seq) ; BasicDBObject query = new BasicDBObject() ; query.put("_id", "auto_increment_id") ; BasicDBObject increment = new BasicDBObject("next", 1) ; BasicDBObject update = new BasicDBObject("$inc", increment) ; DBObject result = auto.findAndModify(query, new BasicDBObject(), new BasicDBObject(), false, update, true, true) ; double x = Double.valueOf(result.get("next").toString()) ; return x ; }
mongodb里面的结构是这样:
> db.auto_id.find() ;
{ "_id" : "auto_increment_id", "next" : 1 }
用起来还挺方便。
相关文章推荐
- MongoDB自动增长id实现、自定义函数调用、与Spring集成
- Spring-boot mongodb ID自增长注解实现 适用于JDK 1.7和JDK 1.8
- MongoDB自动增长id实现、自定义函数调用、与Spring集成
- MongoDB实现ID自增长
- Mongodb 自动增长 自增id 实现 -2
- Mongodb 自动增长 自增id 实现
- MongoDB 实现字段自动增长id Mongodb auto increment ID
- Mongodb 自动增长 自增id 实现 -3 PHP
- Mongodb 自动增长 自增id 实现
- Mongodb 自动增长 自增id 实现 -1
- Mongodb 自动增长 自增id 实现
- java实现mongodb中自增长字段
- oracle实现id自增长
- oracle中的ID号实现自增长的方法
- Oracle 表创建序列-触发 实现表ID自动增长
- hibernate oracle ID自动增长的实现
- 利用hibernate实现oracle(每张表的ID)自动增长
- ASP.Net中实现XMl的标识列(ID列)或自增长列
- Oracle 实现ID 字段自增长
- MySQL中自定义函数实现id自增长