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; } }
关于 mongodb 的 内嵌关联查询
最新推荐文章于 2024-10-03 21:42:36 发布