在数据库设计原理中;自增长字段的目的是为了unique的索引来判断每条记录唯一性;同时保证大数据库量的时候的查询速度。但在Oracle和mongodb数据库中有单独的字段判断唯一性;所以设计中没有自增长字段方式(mysql和mssql都有);并且也不提倡用自增长字段设计表结构。不过经常用习惯这种方式的程序员;oracle和mongodb数据库也可以实现类似的功能;oracle中有sequence方式。那我们也可以试试在mongodb数据库中实现自增长字段模式;就是模仿一下oracle中有sequence方式。1:在mongodb数据库中建立一个名为:sequence的collection;
2个field:coll_name(记录其它collection名字)和cnt(其它collection的自增长字段最大序号)。
2:java代码:
//得到用户表的sequence 自增长id
private static int getSequence(String tableName){
DBCollection table = conn.getDb().getCollection("sequence");
DBObject query = new BasicDBObject();
query.put("coll_name", tableName);
DBObject newDocument =new BasicDBObject();
newDocument.put("$inc", new BasicDBObject().append("cnt", 1));
DBObject ret = table.findAndModify(query, newDocument);
if (ret == null){
return 0;
}else{
return (Integer)ret.get("cnt") + 1;
}
} //新增用户
public static void addUser(UserInfo user){
int id = getSequence("admin_user");
if(id != 0){
DBCollection table = conn.getDb().getCollection("admin_user");
DBObject query = new BasicDBObject();
query.put("id", id);
query.put("name", user.getName());
query.put("e_mail", user.geteEmail());
query.put("passwd", user.getPassword());
query.put("is_del", false);
query.put("create_time", user.getCreateTime());
table.insert(query);
}
}Hibernate 查询结果的展现用MySQL 生成随机密码相关资讯 MongoDB MongoDB教程
- MongoDB 3.3.0 发布下载 (01月14日)
- 使用MongoDB C#官方驱动操作 (12/31/2015 16:27:56)
- CentOS 6.6下安装MongoDB 3.0.1 (12/21/2015 19:29:02)
| - MongoDB 3.2版WiredTiger存储引擎 (01月02日)
- 进程监控工具Supervisor 启动 (12/26/2015 10:49:57)
- MongoDB 3.2.1 RC0 发布下载 (12/18/2015 11:32:29)
|
本文评论 查看全部评论 (0)