关于 mongodb 的 内嵌关联查询

public Object[] searchTrans(int pageNumber,int pageSize,String godates,String wherefrom,String whereto,String transorg){
		if(godates==null)godates = "\\w*"+godates+"\\w*";
		if(wherefrom==null)wherefrom = "\\w*"+wherefrom+"\\w*";
		if(whereto==null)whereto = "\\w*"+whereto+"\\w*";
		if(transorg==null)transorg = "\\w*"+transorg+"\\w*";
		
		try {
			BuguConnection conn = BuguConnection.getInstance();  
			DB db = conn.getDB();
			DBCollection order = db.getCollection("order");
			
			BasicDBObject bdbo2 = new BasicDBObject();
			bdbo2.put("godates",Pattern.compile(godates));
			bdbo2.put("wherefrom",Pattern.compile(wherefrom));
			bdbo2.put("whereto",Pattern.compile(whereto));
			bdbo2.put("transorg",Pattern.compile(transorg));
			BasicDBObject bdbo1 = new BasicDBObject();
			bdbo1.put("$elemMatch", bdbo2);
			BasicDBObject bdbo = new BasicDBObject();
			bdbo.put("trans", bdbo1);
			
			BasicDBObject paymethod1 = new BasicDBObject();
			paymethod1.put("$gte", "0");
			BasicDBObject paymethod2 = new BasicDBObject();
			paymethod2.put("paymethod", paymethod1);
			
			int count = order.find(paymethod2,bdbo).count();
			DBCursor cur = order.find(paymethod2,bdbo).limit(pageSize).skip(pageNumber).sort(new BasicDBObject("trans.godates","-1"));
			List<Object[]> transList = new ArrayList<Object[]>();
			while (cur.hasNext()) {
				DBObject dbo = cur.next();
				if(dbo.get("trans")!=null){
					BasicDBList bson = (BasicDBList) dbo.get("trans");
					for (Object oo : bson) {
						BasicDBObject bson1 = (BasicDBObject)oo;
						transList.add(new Object[]{dbo.get("_id"),bson1});
					}
				}
			}
			return new Object[]{count,transList};
		}catch (MongoException e) {
			e.printStackTrace();
			return null;
		}
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值