java mongodb条件查询_java 操作mongodb查询条件的常用设置

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

以上为常用的筛选条件的设置方法,其他的后续在更新。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值