本文主要是介绍java操作mongodb进行查询,常用筛选条件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
条件列表: BasicDBList condList = new BasicDBList(); 临时条件对象: BasicDBObject cond = null; DBCollection coll = db.getCollection("A");1、$where 在某种应用场合,若要集合A查询文档且要满足文档中某些属性运算结果,可以编写一脚本函数用where进行设置,比如: 某集合中存放的用户信息,包括姓名、年龄、手机号、地址等,要筛选出年龄大于20且小于等于40的用户,我们可以这样: String ageStr = "function (){return parseFloat(this.age) > 20 && parseFloat(this.age) <= 40};"; cond = new BasicDBObject(); cond.put("$where",ageStr);放入条件列表 condList.add(cond);2、$in 接1实例中,要查询年龄为23、40、50的用户信息,我们可以这样: 创建一个临时的条件列表对象,将条件值分别添加进去 BasicDBList values = new BasicDBList(); values.add(23); values.add(40); values.add(50);cond = new BasicDBObject(); cond.put("age",new BasicDBObject("$in",values));放入条件列表 condList.add(cond);3、模糊匹配 接1实例中,要按照用户的姓名进行模糊查询,如:王,我们可以这样做:使用不区分大小写的模糊查询 3.1完全匹配 Pattern pattern = Pattern.compile("^王$", Pattern.CASE_INSENSITIVE); 3.2右匹配 Pattern pattern = Pattern.compile("^.*王$", Pattern.CASE_INSENSITIVE); 3.3左匹配 Pattern pattern = Pattern.compile("^王.*$", Pattern.CASE_INSENSITIVE); 3.4模糊匹配 Pattern pattern = Pattern.compile("^.*王.*$", Pattern.CASE_INSENSITIVE);cond = new BasicDBObject(); cond.put("name",cond);放入条件列表 condList.add(cond);4、$gte/$lte/$gt/$lt 接1实例中,要筛选出年龄大于20且小于等于40的用户,我们可以这样: cond = new BasicDBObject(); cond.append("age",new BasicDBObject("$gt",20)); cond.append("age",new BasicDBObject("$lte",40));放入条件列表 condList.add(cond);在日常的查询中筛选的条件可能会有多个,而且多个条件之间都是且的关系,结合上例1、2、3、4中 将每种条件添加到条件列表中,我可以这样: BasicDBObject searchCond = new BasicDBObject(); searchCond.put("$and", condList);然后查询数据: DBCursor ret = coll.find(searchCond);
这篇关于java操作mongodb进行查询,常用筛选条件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!