MongoDB Plugin 1.0.4
来源:互联网 发布:netstat 查看端口 编辑:程序博客网 时间:2024/05/29 18:06
简介
因为自己工作中会需要用到MongoDB,为了在JAVA上用MongoDB用得更舒服,所以开发了这个工具。
相较于之前的版本,几乎重写所有代码。
要求java7及以上,MongoDB由于3.0后改变较大,最好是3.2或以上。
具有以下特性:
- 与MongoDB版本同步,完美支持最新的3.2.6版本.
- 使用方式更像是自然语言,用起来更舒适。
- 简化mongodb java driver 的操作,降低学习成本。
- 支持MongoDB的授权机制(可以使用用户名和密码登录)、支持连接MongoDB副本集、读写分离、安全写入、SSL连接等特性。
- 内置JFinal和Resty插件。(基于最新版的JFinal和Resty)
如有疑问可加群:557692142或发送邮件到t-baby@zomake.com
项目地址:https://github.com/T-baby/MongoDB-Plugin
1.0.4
–RestyPlugin–
修复一个启动时的bug
–MongoKit–
增加了find(Class),用于反序列化
–MongoQuery–
增加set(Object)方法,用于序列化对象
加载
普通
可以直接到https://github.com/T-baby/MongoDB-Plugin/releases/tag/1.0.3
下载releases版本
maven(github版本现发布,maven版本一般会比github版本慢一两天)
依赖
本项目依赖于mongo-java-driver和fastjson、SLF4J(MongoDB官方建议使用)。如果使用JFinal或者其它插件的话,请自行加载相应项目的包。具体的依赖见https://github.com/T-baby/MongoDB-Plugin/blob/master/pom.xml
初始化
结合JFinal
在configPlugin中加载
结合Resty
在configPlugin中加载
单独使用
高级特性
由于JFinal插件和Resty插件都是继承MongoPlugin,所以下面这些方法使用起来都是一样的。
连接副本集(不会搭建副本?狂戳我获得北大绿卡一本(づ ̄ 3 ̄)づ)
登录数据库
更多认证
SSL连接
连接超时
更多设置
读写分离
更多策略的读写分离
安全写入
更多安全写入策略
最严格的安全写入
最佳实践(获取更多使用建议)
操作
所有操作都基于MongoQuery,如果是查找条件等等默认使用and连接,如果需要使用or,可以直接继承MongoKit和MongoQuery、对应的插件增加相应的方法。
下文的query一律指MongoQuery对象。
ps:所有操作都是批量的,所以建议在修改、删除时使用不重复的key或者尽可能详细指定。
查找会基于fastjson返回一个格式化好的json list,更新、删除、插入都会返回影响的行数。
插入
多个key和value只要直接在后面增加set即可。
支持插入对象,自动转换Bean对象。
获取插入成功的数据的id
批量插入
使用add来增加,然后使用saveList来保存。
根据ID操作
MongoQuery支持通过ID来查找、更新、插入。
为了大家方便,已经自带了一个byId方法。查找、更新、删除都可以接这个方法。如下面根据ID查找:
查找
查找所有
根据条件查找
(ps:MongoDB区分文本和数字,设定条件时要注意)
反序列化查找结果
获取结果数量
条件
在use后面接着的就是条件,支持以下条件:
- in() 包含,如果key为_id会自动将文本id转为mongodb所需的ObjectId
- eq() 等于
- ne() 不等于
- gt() 大于
- lt() 小于
- gte() 大于等于
- lte() 小于等于
- like() 模糊查找,like除了支持含有,还支持以什么开头或以什么结尾的查找。
- like(int type,String key, String value) 1为以什么开头,除了1以外的数字都是以什么结尾。
- 如果还需要更多的条件,可以通过 query.filter() 来加载原生条件,如:
query.filter(Filters.in(key, value)) ,这里的filter是mongodb驱动自带的,想要知道更多条件可以到http://mongodb.github.io/mongo-java-driver/3.2/builders/filters/
所有的条件都是默认以and连接,所以可以接多个条件,更新、查找、删除都是使用这种方式,比如我要查找一个年龄小于18岁名字中含有“陈”这个字的男生。
排序和数量
find是支持排序和数量的,下面有两个例子。
排序条件要求使用原生驱动的写法,详情见http://mongodb.github.io/mongo-java-driver/3.2/builders/sorts/
分页
使用分页很简单,只需要新建一个MongoPaginate对象即可,放入写好查询条件的query对象、每页行数和当前页数即可。
注意不要在被放入的query对象中使用limit和skip条件,以免影响到查询结果。
更新
更新操作的话直接在条件后追加modify即可,更新多个就追加多个。
更新操作默认是批量的,所以会更新满足条件的所有行,建议至少使用一个唯一字段或者是详细的条件。如果需要用到驱动原生的Updates Model,可以直接add(Updates Model);
为了方便大家的使用,内置了自增:inc(key,value)。
删除
删除更查找基本一致,指定条件后直接加delete()即可。
原文地址:http://it.lindukj.cn/archives/2027
- MongoDB Plugin 1.0.4
- MongoDB Plugin 1.0.3
- MongoDB Plugin 部分文档
- MongoDB Plugin(十一)
- Windows 编译 hadoop eclipse plugin 1.0.4
- hadoop-1.0.4编译eclipse plugin插件
- Windows 编译 hadoop eclipse plugin 1.0.4
- hadoop-1.0.4 eclipse-plugin插件编译
- PlugIn
- plugIn
- Plugin
- MongoDB(4)
- mongodb(4)
- MongoDb(4)
- Eclipse3.4配置php plugin
- MongoDB MongoDB文件存取操作(4)
- MongoDB笔记4:MongoDB的索引
- MongoDB(4)--MongoDB服务的启动
- ARM的栈帧
- Unity3D中常用的数据结构总结与分
- Java Web开发框架对比—Part1—快速原型
- JNI接口函数
- 2.JVM类装载器
- MongoDB Plugin 1.0.4
- Java hashCode() 方法深入理解
- 找出一个数组中重复次数最多的数
- 设计模式(三) 抽象工厂模式
- 自定义下载圆形按钮
- (MFC)查找和替换对话框实例
- Android 网络框架的编写和使用
- Javascript异常捕获
- 每天一个linux命令(50):crontab命令