zoukankan      html  css  js  c++  java
  • MongoDB查询条件常用设置

    原文地址:http://blog.csdn.net/mcpang/article/details/8731065

    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);

    还有其他的操作符如$or等等。

  • 相关阅读:
    JBPM流程部署之流程版本升级
    JBPM流程部署校验之java利用XSD校验XML
    JBPM节点分支之Group节点分析
    Object Oriented Programming in JavaScript
    JBPM流程部署之部署环境初始化
    JBPM流程定义校验之.net利用XSD校验XML
    JBPM流程部署之流程定义实体对象分析
    使用Jasob混淆javascript代码
    利用javascript的面向对象的特性实现限制试用期
    JBPM流程部署之流程支持的节点扩展
  • 原文地址:https://www.cnblogs.com/boonya/p/7421751.html
Copyright © 2011-2022 走看看