博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 操作mongodb查询条件的常用设置
阅读量:4321 次
发布时间:2019-06-06

本文共 1636 字,大约阅读时间需要 5 分钟。

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

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

转载于:https://www.cnblogs.com/likeju/p/5082565.html

你可能感兴趣的文章
C#:使用UPnP来穿透NAT使内网接口对外网可见
查看>>
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
查看>>
项目管理的小故事
查看>>
Visual Studio不显示智能提示代码,快捷键Alt+→也不出现
查看>>
多文件调用(函数、结构体)
查看>>
C# 获取本地电脑所有的盘符
查看>>
D3.js学习(三)
查看>>
汇编语言实验9
查看>>
window资源管理器下无法打开ftp站点
查看>>
spring特点与好处
查看>>
html 自制属性
查看>>
面向对象术语概念
查看>>
细胞(cell) 矩阵快速幂
查看>>
HDU - 1272 小希的迷宫
查看>>
EntityFramework(1)基础概念与Database First
查看>>
Spring Boot 任务
查看>>
2018APIO 进京赶考
查看>>
Duilib程序添加托盘图标显示
查看>>
在windows上搭建redis集群(redis-cluster)
查看>>
【省选十连测之九】【DP】【组合计数去重】【欧拉函数】基本题
查看>>