mongodb and 和 or 查询
db.getCollection('gxyWarnEntity').find({ "schoolId" : "f11c8ea12f457dbc19c768a8bb6357f8", "batchId" : "594f724d6974c107bd702cc6ef39183a", "$or" : [{ "studentName" : { "$regex" : "小", "$options" : "" } }, { "teacherName" : { "$regex" : "小", "$options" : "" } }] })
java:
public List<GxyWarnEntity> selectWarnPage(GxyWarnEntity gxyWarnEntity){
Criteria cri =Criteria.where("schoolId").is(gxyWarnEntity.getSchoolId());
if(gxyWarnEntity.getBatchId()!=null) {
cri.and("batchId").is(gxyWarnEntity.getBatchId());
}
if(gxyWarnEntity.getDepId()!=null){
cri.and("depId").is(gxyWarnEntity.getDepId());
}
if(gxyWarnEntity.getWarningType()!=null){
cri.and("warningType").is(gxyWarnEntity.getWarningType());
}
if(gxyWarnEntity.getStudentName()!=null){
cri.orOperator(Criteria.where("studentName").regex(gxyWarnEntity.getStudentName()),
Criteria.where("teacherName").regex(gxyWarnEntity.getStudentName())
//,Criteria.where("classTeacherName").regex(gxyWarnEntity.getStudentName())
);
}
Query query = new Query(cri);
if (gxyWarnEntity.getCurrPage() != null && gxyWarnEntity.getPageSize() != null) {
query.skip((gxyWarnEntity.getCurrPage()-1)*gxyWarnEntity.getPageSize())
.limit(gxyWarnEntity.getPageSize());
}
return template.find(query, GxyWarnEntity.class);
}
and:
db.getCollection('gxyWarnEntity').find({ "schoolId" : "f11c8ea12f457dbc19c768a8bb6357f8", "batchId" : "", "$and" : [{ "warningType" : { "$gte" : 1 } }, { "warningType" : { "$ne" : 4 } }], "$or" : [{ "studentName" : { "$regex" : "小", "$options" : "" } }, { "teacherName" : { "$regex" : "小", "$options" : "" } }] })
{ "schoolId" : "f11c8ea12f457dbc19c768a8bb6357f8", "batchId" : "", "$and" : [{ "warningType" : { "$gte" : 1 } }, { "warningType" : { "$ne" : 4 } }], "$or" : [{ "studentName" : { "$regex" : "小", "$options" : "" } }, { "teacherName" : { "$regex" : "小", "$options" : "" } }] } fields: Document{{}} for class: class com.zhangtao.moguding.practiceservice.entity.GxyWarnEntity in collection: gxyWarnEntity
2019-10-15 09:52:17.819 DEBUG 13028 --- [io-9020-exec-15] o.s.data.mongodb.core.MongoTemplate : Executing count: { "schoolId" : "f11c8ea12f457dbc19c768a8bb6357f8", "batchId" : "", "$and" : [{ "warningType" : { "$gte" : 1 } }, { "warningType" : { "$ne" : 4 } }], "$or" : [{ "studentName" : { "$regex" : "小", "$options" : "" } }, { "teacherName" : { "$regex" : "小", "$options" : "" } }] } in collection: gxyWarnEntity
public List<GxyWarnEntity> selectWarnPage(GxyWarnEntity gxyWarnEntity){
Criteria cri =Criteria.where("schoolId").is(gxyWarnEntity.getSchoolId());
if(gxyWarnEntity.getBatchId()!=null) {
cri.and("batchId").is(gxyWarnEntity.getBatchId());
}
if(gxyWarnEntity.getDepId()!=null){
cri.and("depId").is(gxyWarnEntity.getDepId());
}
if(gxyWarnEntity.getWarningType()!=null && gxyWarnEntity.getWarningType() != EnumUnsignType.UNSIGNONE.getType()){
cri.andOperator(
Criteria.where("warningType").gte(gxyWarnEntity.getWarningType()),
Criteria.where("warningType").ne(EnumUnsignType.UNSIGNONE.getType())
);
}
if(gxyWarnEntity.getStudentName()!=null){
cri.orOperator(Criteria.where("studentName").regex(gxyWarnEntity.getStudentName()),
Criteria.where("teacherName").regex(gxyWarnEntity.getStudentName())
//,Criteria.where("classTeacherName").regex(gxyWarnEntity.getStudentName())
);
}
Query query = new Query(cri);
if (gxyWarnEntity.getCurrPage() != null && gxyWarnEntity.getPageSize() != null) {
query.skip((gxyWarnEntity.getCurrPage()-1)*gxyWarnEntity.getPageSize())
.limit(gxyWarnEntity.getPageSize());
}
return template.find(query, GxyWarnEntity.class);
}
mongodb and 和 or 查询的更多相关文章
- NodeJs操作MongoDB之多表查询($lookup)与常见问题
NodeJs操作MongoDB之多表查询($lookup)与常见问题 一,方法介绍 aggregate()方法来对数据进行聚合操作.aggregate()方法的语法如下 1 aggregate(ope ...
- mongoDB的文档查询
1.简单查询: find() 方法以非结构化的方式来显示所有文档. 语法 MongoDB 查询数据的语法格式如下: collection是集合名字,注意应该是当前数据库的集合,collect ...
- 7. java操作MongoDB,采用_id查询
转自:https://www.2cto.com/database/201704/633262.html mongodb命令行_id查询方法 直接用ObjectId() db.getCollection ...
- MongoDB文档(二)--查询
(一)查询文档 查询文档可以使用以下方法 # 以非结构化的方式显示所有的文档 db.<collectionName>.find(document) # 以结构化的方式显示所有文档 db.& ...
- MongoDB学习笔记六—查询下
查询内嵌文档 数据准备 > db.blog.find().pretty() { "_id" : ObjectId("585694e4c5b0525a48a441b5 ...
- MongoDB学习笔记五—查询上
数据准备 { , "goods_name" : "KD876", "createTime" : ISODate("2016-12- ...
- MongoDB 文档的查询和插入操作
MongoDB是文档型数据库,有一些专门的术语,和关系型DB相似,但也有差异,例如,Collection类似于关系型DB的Table,document类似于row,key/value pair类似于c ...
- Mongodb profile(慢查询日志)
在MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是MongoDB Database Profiler.所以MongoDB 不仅有,而 ...
- MongoDB中的高级查询(二)
$mod取模运算 查询index对5取模运算等于1的数据. $not $not是元条件句,即可以用在任何其他条件之上.查询index对5取模运算不等于1的数据. $exists判断字段是否存在 查询出 ...
- MongoDB学习 (六):查询
本文地址:http://www.cnblogs.com/egger/archive/2013/06/14/3135847.html 欢迎转载 ,请保留此链接๑•́ ₃•̀๑! 本文将介绍操作符的使用 ...
随机推荐
- C#自由组合本地缓存、分布式缓存和数据库的数据
一.背景介绍: 我们在进行数据存储的时候,有时候会加入本地缓存.分布式缓存以及数据库存储三级的结构,当我们取值的时候经常是像下面这样的流程: 1.先取本地缓存,如果值存在直接返回 2.本地缓存不存在, ...
- [转载]npm 与 package.json 快速入门教程
npm 与 package.json 快速入门教程 2017-08-02 19:16:20 拭心 阅读数 78648更多 分类专栏: 学学前端 版权声明:本文为博主原创文章,遵循CC 4.0 BY ...
- [转载]Java 内存分配全面浅析
Java 内存分配全面浅析 2013-02-20 17:54:45 袭烽 阅读数 91353更多 分类专栏: java基础 本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Ja ...
- #2002 Cannot log in to the MySQL server, PHPMyAdmin/MySQL
改完会可能会出现1045的错误 在phpStudy中,其他选项菜单——mysql工具——重置密码,即可
- DNS域名解析系统介绍
域名系统(D N S)是一种用于T C P / I P应用程序的分布式数据库,它提供主机名字和 I P地址之间的转换及有关电子邮件的选路信息.这里提到的分布式是指在 I n t e r n e t上的 ...
- Task.Run 和 Task.Factory.StartNew 区别
Task.Run 是在 dotnet framework 4.5 之后才可以使用, Task.Factory.StartNew 可以使用比 Task.Run 更多的参数,可以做到更多的定制. 可以认为 ...
- python 传参
python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方式.这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能 ...
- BZOJ 3218 A + B Problem (可持久化线段树+最小割)
做法见dalao博客 geng4512的博客, 思路就是用线段树上的结点来进行区间连边.因为有一个只能往前面连的限制,所以还要可持久化.(duliu) 一直以来我都是写dinicdinicdinic做 ...
- HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛
普通的数位DP计算回文串个数 /* HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 2-36进制下回文串个数 */ ...
- MySQL 8.0.15 配置 MGR单主多从
转载自:http://www.cnblogs.com/zhangzihong/p/10443526.html 一.简介 MySQL Group Replication(简称MGR)字面意思是mysql ...