您好,欢迎访问一九零五行业门户网

Mongodb底层java驱动框架工具类使用

使用mongodb需要对文档结构进行合理的设计,以满足某些特定需求。比如随机选取文档,使用skip跳过随机个文档就没有在文档中加个随机键, 然后使用某个随机数对文档进行查询高效,随机键还能添加索引,效率更高。合理选择,合理设计。 import java.net.unknown
使用mongodb需要对文档结构进行合理的设计,以满足某些特定需求。比如随机选取文档,使用skip跳过随机个文档就没有在文档中加个随机键,
然后使用某个随机数对文档进行查询高效,随机键还能添加索引,效率更高。合理选择,合理设计。import java.net.unknownhostexception;import java.util.date;import java.util.list;import com.mongodb.basicdblist;import com.mongodb.basicdbobject;import com.mongodb.db;import com.mongodb.dbcollection;import com.mongodb.dbcursor;import com.mongodb.dbobject;import com.mongodb.mongo;import com.mongodb.mongoexception;import com.nerd.mongo.config.configfactory;/** * mongos * @author chenlongquan * */public class mongoutil { private final static threadlocal mongos = new threadlocal(); public static db getdb(){ return getmongos().getdb(configfactory.getmongoconfig().getdb()); } public static mongo getmongos() { mongo mongo = mongos.get(); if (mongo == null) { try { mongo = new mongo(configfactory.getmongoconfig().getip(),configfactory.getmongoconfig().getport()); mongos.set(mongo); } catch (unknownhostexception e) { e.printstacktrace(); } catch (mongoexception e) { e.printstacktrace(); } } return mongo; } public static void close(){ mongo mongo = mongos.get(); if(mongo!=null){ mongo.close(); mongos.remove(); } } /** * 获取集合(表) * * @param collection */ public static dbcollection getcollection(string collection) { return getdb().getcollection(collection); }......................................................
下面我们就可以在这上面的基础上对mongodb进行基本的crud操作
例如:
/** * 插入 * * @param collection * @param o 插入 * */ public static void insert(string collection, dbobject o) { getcollection(collection).insert(o); } /** * 批量插入 * * @param collection * @param list * 插入的列表 */ public void insertbatch(string collection, list list) { if (list == null || list.isempty()) { return; } getcollection(collection).insert(list); }
测试用例:
insert(user1, new basicdbobject().append(name, admin3).append(type, 2).append(score, 70) .append(level, 2).append(inputtime, new date().gettime()));
工具类使用:
/** * 删除 * * @param collection * @param q * 查询条件 */ public void delete(string collection, dbobject q) { getcollection(collection).remove(q); } /** * 批量删除 * * @param collection * @param list * 删除条件列表 */ public void deletebatch(string collection, list list) { if (list == null || list.isempty()) { return; } for (int i = 0; i < list.size(); i++) { getcollection(collection).remove(list.get(i)); } } /** * 更新 * * @param collection * @param q * 查询条件 * @param setfields * 更新对象 */ public static void update(string collection, dbobject q, dbobject setfields) { getcollection(collection).updatemulti(q, new basicdbobject($set, setfields)); } /** * 查找集合所有对象 * * @param collection */ public static list findall(string collection) { return getcollection(collection).find().toarray(); } /** * 按顺序查找集合所有对象 * * @param collection * 数据集 * @param orderby * 排序 */ public static list findall(string collection, dbobject orderby) { return getcollection(collection).find().sort(orderby) .toarray(); } /** * 查找(返回一个对象) * * @param collection * @param q * 查询条件 */ public static dbobject findone(string collection, dbobject q) { return getcollection(collection).findone(q); } /** * 查找(返回一个对象) * * @param collection * @param q * 查询条件 * @param fileds * 返回字段 */ public static dbobject findone(string collection, dbobject q, dbobject fileds) { return getcollection(collection).findone(q, fileds); } /** * 分页查找集合对象,返回特定字段 * * @param collection * @param q * 查询条件 * @param fileds * 返回字段 * @pageno 第n页 * @perpagecount 每页记录数 */ public static list findless(string collection, dbobject q, dbobject fileds, int pageno, int perpagecount) { return getcollection(collection).find(q, fileds) .skip((pageno - 1) * perpagecount).limit(perpagecount) .toarray(); }
其它类似信息

推荐信息