java 中使用mongodb查询find
《java 中使用mongodb查询find》要点: 因为公司需求最近研究了下mongodb的查询,但是因为对于这里面只进行了语法的使用,当初没有进行内部数据的查看导致出现一些问题,所以大家在看一门新的知识的时候不要只注重语言本身也要注意内部的结构,还有看到的东西要立马去实践不要一直盯着看,那样会浪费时间,自己也掌握不了多少知识. 现在开始说下mongodb查询的问题 用的是java语言. mongodb的一般都是find方法查询,因为查询要用到很多个查询条件组合,并且是精确查询.就把查询条件组合好之后放到list当中然后用and组合一起放到find当中查询. /** * searchCond 试讲在condList中的条件并列好之后放到find中 */ BasicDBObject searchCond = new BasicDBObject(); BasicDBList condList = new BasicDBList(); BasicDBObject cond; DBCollection Conllection; condList= linkPayReturnContent(map); if(condList.size()>0){ searchCond.put("$and",condList); } /** *去掉查询出来的主键id */ BasicDBObject idDB=new BasicDBObject(); idDB.put("_id",0); Conllection=mongoBgTemp.queryDB(“指定查询的表名”); DBCursor db=Conllection.find(searchCond,idDB); db.addOption(Bytes.QUERYOPTION_NOTIMEOUT); while(db.hasNext()){ resultMap=new HashMap(); DBObject dbObj= db.next(); list.add(dbObj.toMap()); } db.close(); return list; public DBCollection queryDB(String collectionName){ DBCollection userCollection = mongoTemplate.getCollection(collectionName); return userCollection; } /** * searchCond 试讲在condList中的条件并列好之后放到find中 */ BasicDBObject searchCond = new BasicDBObject(); BasicDBList condList = new BasicDBList(); BasicDBObject cond; DBCollection Conllection; condList= linkPayReturnContent(map); if(condList.size()>0){ searchCond.put("$and",idDB); db.addOption(Bytes.QUERYOPTION_NOTIMEOUT); while(db.hasNext()){ resultMap=new HashMap(); DBObject dbObj= db.next(); list.add(dbObj.toMap()); } db.close(); return list; public DBCollection queryDB(String collectionName){ DBCollection userCollection = mongoTemplate.getCollection(collectionName); return userCollection; } /*** *因为有的查询条件不是在一个方法当中我就在这里全部组合在一起方便自己去查询使用以后 */ BasicDBList condList = new BasicDBList(); /**交易时间*/ if(map.containsKey("addTimeStart")){ BasicDBObject addTimeStartDB=new BasicDBObject(); String addTimeStart=StringUtils.trimToEmpty(map.get("addTimeStart").toString()); if(addTimeStart !=null && !addTimeStart.equals("")){ addTimeStartDB.put("transtime",new BasicDBObject("$gte",addTimeStart)); condList.add(addTimeStartDB); } } if(map.containsKey("addTimeEnd")){ BasicDBObject addTimeEndDB=new BasicDBObject(); String addTimeEnd=StringUtils.trimToEmpty(map.get("addTimeEnd").toString()); if(addTimeEnd !=null && !addTimeEnd.equals("")){ addTimeEndDB.put("transtime",new BasicDBObject("$lte",addTimeEnd)); condList.add(addTimeEndDB); } } if(map.containsKey("orderNo")){ BasicDBObject orderNoDB=new BasicDBObject(); String orderNo=StringUtils.trimToEmpty(map.get("orderNo").toString()); if(orderNo !=null && !orderNo.equals("")){ orderNoDB.put("order_no",orderNo); condList.add(orderNoDB); } } if(map.containsKey("cardNo")){ BasicDBObject cardNoDB=new BasicDBObject(); String cardNo=StringUtils.trimToEmpty(map.get("cardNo").toString()); if(cardNo !=null && !cardNo.equals("")){ cardNoDB.put("card_no",cardNo); condList.add(cardNoDB); } } if(map.containsKey("phone")){ BasicDBObject phoneDB=new BasicDBObject(); String phone=StringUtils.trimToEmpty(map.get("phone").toString()); if(phone !=null && !phone.equals("")){ phoneDB.put("phone",phone); condList.add(phoneDB); } } if(map.containsKey("totalFee")){ BasicDBObject totalFeeDB=new BasicDBObject(); String totalFee=StringUtils.trimToEmpty(map.get("totalFee").toString()); if(totalFee !=null && !totalFee.equals("")){ totalFeeDB.put("total_fee",totalFee); condList.add(totalFeeDB); } } if(map.containsKey("totalFee")){ BasicDBObject totalFeeDB=new BasicDBObject(); String totalFee=StringUtils.trimToEmpty(map.get("totalFee").toString()); if(totalFee !=null && !totalFee.equals("")){ totalFeeDB.put("total_fee",totalFee); condList.add(totalFeeDB); } } if(map.containsKey("memberId")){ BasicDBObject memberIdDB=new BasicDBObject(); String memberId=StringUtils.trimToEmpty(map.get("memberId").toString()); if(memberId !=null && !memberId.equals("")){ memberIdDB.put("member_id",memberId); condList.add(memberIdDB); } } if(map.containsKey("content")){ //这个是利用的模糊查询现在那个用的是正则表达式 BasicDBObject contentDB=new BasicDBObject(); String content=StringUtils.trimToEmpty(map.get("content").toString()); if(content !=null && !content.equals("")){ Pattern queryPattern = Pattern.compile(content,Pattern.CASE_INSENSITIVE); contentDB.put("content",queryPattern ); condList.add(contentDB); } } if(map.containsKey("borrowMoney")){ //在这里也是提醒下自己在查询的时候要注意内容的区分,并且注意字段类型 BasicDBObject borrowMoneyDB=new BasicDBObject(); String borrowMoney=StringUtils.trimToEmpty(map.get("borrowMoney").toString()); if(borrowMoney !=null && !borrowMoney.equals("")){ borrowMoneyDB.put("applyamt",ObjectUtils.toString(new BigDecimal (borrowMoney).setScale(2,BigDecimal.ROUND_DOWN))); condList.add(borrowMoneyDB); } } return condList; } 编程之家PHP培训学院每天发布《java 中使用mongodb查询find》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |