MongoDB Plugin for JFinal or Other

1,832 阅读2分钟
原文链接: cybermkd.com

因为自己工作中会需要用到MongoDB,为了在JAVA上用MongoDB用得更舒服,所以基于jfinal-ext里面的mongodb插件进行了二次开发。

如果你使用的并不是JFinal框架,可以只删掉MongoPlugin,自行通过

MongoKit.init(client, database);

将MongoClient对象和要操作的数据库名传递给给MongoKit,就可以正常使用MongoKit了。如果是JFinal框架,可以在JFinal的配置文件configPlugin中配置即可:

MongoPlugin mongodb = new MongoPlugin("127.0.0.1", 27017, "test");

me.add(mongodb);

项目地址:github.com/T-baby/Mong…

使用

MongoQuery

增删查改基本都会用到这个对象,在增加时主要用来存储数据,查找、修改、删除时用来充当条件。

所以在增删查改之前,一般都是先

MongoQuery query=new MongoQuery()

使用set方法可以向MongoQuery添加数据,在非存储情况下,条件也是通过这个方法添加进去。

query.set("这是Key","这是Value")

由于MongoQuery支持多个条件同时增加,所以你可以这么添加:

query.set("这是Key","这是Value").set("这是Key",3)

查找等情况下,set(key,value)代表的是查找结果要完全匹配,你可以通过set(operator, key, value)来增强搜索条件。

目前经过测试支持的operator如下:

QueryOperators.GT 大于
QueryOperators.GTE 大于或等于
QueryOperators.LT 小于
QueryOperators.LTE 小于或等于
QueryOperators.NE 不等于

(ps:MongoDB区分文本和数字,所以不能set(QueryOperators.GT, "key", 3)

如果需要模糊查询的话,可以使用like(key,value)方法。

多个条件的情况下只需在后面query后追加方法即可,如:

key为test,value要求大于3并且包含"MongoDB"

query.set(QueryOperators.GT,"test",3).like("MongoDB");

MongoKit

增删查改具体的执行是通过这个类完成的,因为尊重原作者的思想,所以保留了原本的一些方法,在使用时如果不是JFinal框架,可以把所有代码中含有Record对象的方法都删掉。

collectionName是指MongoDB中的集合名,类似mysql的表名。

MongoKit.save(String collectionName, MongoQuery q)

批量增加

MongoKit.save(String collectionName, List querys)

查找并修改结果的第一个(目前暂不支持批量修改)

MongoKit.updateFirst(String collectionName, MongoQuery q, MongoQuery o)

q是查找条件,o是修改内容

根据MongoDB生成的ID查找

MongoKit.findById(String collectionName, String id)

将query对象作为条件查找

MongoKit.findByQuery(String collectionName, MongoQuery query)

将query对象作为条件查找并指定数量

MongoKit.findByQuery(String collectionName, MongoQuery query, int limit)

将query对象作为条件查找并指定数量和排序

MongoKit.findByQuery(String collectionName, MongoQuery query, int limit, BasicDBObject b)

b是排序方式,一般可以这么写new BasicDBObject(key,-1)

1是正序,-1是倒序

根据条件查找并删除

MongoKit.findAndRemove(String collectionName, MongoQuery query)

如果想要获取查找到的结果的id可以通过

查找的单个结果的DBObject.get("_id").toString()