MongoDB的薄封装(nutzmongo库)
By:wendal<wendal1985@gmail.com>

简介

Top

MongoDB 驱动的薄封装, 主要是封装Pojo<->BasicDbObject的转换, 支持mongodb java driver 3.0+

项目地址: https://github.com/nutzam/nutzmongo

添加依赖

Top

maven 的配置

	<dependency>
		<groupId>org.nutz</groupId>
		<artifactId>nutzmongo</artifactId>
		<version>1.r.60</version>
	</dependency>
	<!-- 其他依赖 -->

直接下载jar

声明Ioc Bean

Top
var ioc={
    // 单机
	zMongo : {
		args : ["127.0.0.1", 27017], // 或者不写参数,默认就是127.0.0.1和27017
		factory : "org.nutz.mongo.ZMongo#me"
	},
	// 集群
	//zMongo : {
	//	args : ["mongodb://root:mypass@192.168.2.199:3717,192.168.2.200:3717/admin?replicaSet=mgset"], // 基于Mongo URI创建ZMongo
	//	factory : "org.nutz.mongo.ZMongo#uri"
	//},
	zMoDB : {
		args : ["nutzbook"], // 数据库名称
		factory : "$zMongo#db"
	},
	// 集合,可以在这里声明,也可以走@Inject注入
	zMoCoUser : {
		args : ["user"],
		factory : "$zMoDB#c"
	}
	/* // 还可以声明几个常用的集合,也可以在Service中生成
	,zMoCoTopic : {
		args : ["topic", false],
		factory : "$zMoDB#cc"
	},
	zMoCoReply : {
		args : ["reply", false],
		factory : "$zMoDB#cc"
	}
	*/
}

Service中的注入和使用

Top
@IocBean
public class XXXService {
	// 按需注入几个核心对象
	@Inject 
	protected ZMongo zmongo;  //注意大小写与配置的名字一致
	@Inject
	protected ZMoDB zMoDB; // 当前数据
	
	@Inject ZMoCo zMoCoUser; // 按js里面的配置取
	
	@Inject("java:$zMoDB.c('role')") // 也可以直接取. 当然了,也可以代码调用zMoDB.c(集合名词)来动态获取
	ZMoCo zMoCoRole;
	
	public void insert(User...users) {
		zMoCoUser.insert(ZMo.toDocArray(users));
	}
	
	public List<User> query(ZMoDoc cnd) {
		List<User> list = new ArrayList<User>();
		DBCursor cursor = MoCoUser.find(cnd);
		if(cursor.hasNext()) {
   			DBObject obj = cursor.next();
   			list.add(ZMo.me().fromDocToObj(obj, User.class));
		}
		return list;
	}
	
	// ZMoCo还有很多方法哦,请挖掘
}

关于日志

Top

nutzmongo内的日志大部分是ZMoCo输出的, 走的也是nutz的Log接口. 若使用log4j, 下面是参考配置