关于 mongodb 的 内嵌关联查询

来源:互联网 发布:极速mac修改器 编辑:程序博客网 时间:2024/06/05 16:29
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;}}


	
				
		
原创粉丝点击