mongoTemplate 条件查询
构建条件方法
@Override
public Query getQuery(ReportParam param){
//check
MeenoAssert.hasLength(param.getUuid(),"uuid can not empty!");
MeenoAssert.notNull(param.getChartType(),"chartType can not empty!");
Query query = new Query();
//uuid
if(!StringUtils.isEmpty(param.getUuid())){
query.addCriteria(Criteria.where("uuid").is(param.getUuid()));
}
//chartType
if(param.getChartType() != null){
query.addCriteria(Criteria.where("chartType").is(param.getChartType()));
}
//rowName
if(!StringUtils.isEmpty(param.getRowName())){
query.addCriteria(Criteria.where("rowName").is(param.getRowName()));
}
//groupName
if(!StringUtils.isEmpty(param.getGroupName())){
query.addCriteria(Criteria.where("groupName").is(param.getGroupName()));
}
//风向
if(!StringUtils.isEmpty(param.getWindDirection())){
query.addCriteria(Criteria.where("windDirection").is(param.getWindDirection()));
}
//场景id
if(param.getSceneId() != null){
query.addCriteria(Criteria.where("sceneId").is(param.getSceneId()));
}
//物料id
if(param.getMaterialId() != null){
query.addCriteria(Criteria.where("materialId").is(param.getMaterialId()));
}
//火灾类型
if(param.getFireType() != null){
query.addCriteria(Criteria.where("fireType").is(param.getFireType()));
}
//障碍区
if(param.getObstacleId() != null){
query.addCriteria(Criteria.where("obstacleId").is(param.getObstacleId()));
}
//墙面
if(!StringUtils.isEmpty(param.getWallFinish())){
query.addCriteria(Criteria.where("wallFinish").is(param.getWallFinish()));
}
//观察点
if(param.getObPointId() != null){
query.addCriteria(Criteria.where("obPointId").is(param.getObPointId()));
}
//天气
if (param.getClimateId() != null) {
query.addCriteria(Criteria.where("climateId").is(param.getClimateId()));
}
return query;
}
查询方法
@Override
public String getReportContour(ReportParam param) {
Query query = this.getQuery(param);
List<Contour> contours = this.mongoTemplate.find(query, Contour.class);
List<JSONObject> resultList = Lists.newArrayList();
if(!com.alibaba.excel.util.CollectionUtils.isEmpty(contours)){
resultList = contours.stream()
.map(curve -> {
if(!com.alibaba.excel.util.StringUtils.isEmpty(curve.getContent())){
JSONObject jsonObject = JSONObject.parseObject(curve.getContent());
return jsonObject;
}
return null;
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
return JSONObject.toJSONString(resultList);
}
return null;
}
mongoTemplate 条件查询的更多相关文章
- MongoTemplate复合条件查询
分. 排序.按时间查询 Query query = new Query(); //必须条件 Criteria c = Criteria.where("VINID& ...
- SpringBoot之MongoTemplate的查询可以怎么耍
学习一个新的数据库,一般怎么下手呢?基本的CURD没跑了,当可以熟练的增.删.改.查一个数据库时,可以说对这个数据库算是入门了,如果需要更进一步的话,就需要了解下数据库的特性,比如索引.事物.锁.分布 ...
- java中mongo的条件查询
@Override public Page<ProductInfo> findAll(Pageable pageable, ProductInfo productInfo) { //创建一 ...
- MongoDBTemplate多条件查询的问题
问题: 在使用Spring Data MongoDB 进行条件查询数据时,发现条件判断不起作用,结果会返回所有的数据. Criteria criteria = new Criteria(); crit ...
- jqGrid jqGrid分页参数+条件查询
HTML <div class="row"> <div class="col-sm-20"> <form id="for ...
- Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)
为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...
- Oracle学习总结_day03_day04_条件查询_排序_函数_子查询
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...
- [NHibernate]条件查询Criteria Query
目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...
- PHP-----练习-------租房子-----增删改查,多条件查询
练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php <?php class DBDA ...
随机推荐
- MySQL基础篇(一)
本文主要内容为MySQL的基础语句以及正则表达式等内容. 本文操作的数据库内容存在个人github:https://github.com/YuanGao-1/blog_demo.git init_sc ...
- 日常学习-001-Get和Post的区别
首先说明参考链接:https://mp.weixin.qq.com/s/W68JzNIoUpm9hyXinOzkMw 以下为个人观后总结. 初级理解: GET和POST的区别 1.get传送的参数长度 ...
- 常见数据库SELECT结果只显示前几条记录方法汇总
常见数据库SELECT结果只显示前几条记录方法汇总 为了查看数据表中的数据情况.经常会遇到想让查询结果只显示N行,比如只显示10行的情况.不同的数据库有不同的关键字和SELECT实现语法. 1.SQL ...
- YsoSerial 工具常用Payload分析之URLDNS
本文假设你对Java基本数据结构.Java反序列化.高级特性(反射.动态代理)等有一定的了解. 背景 YsoSerial是一款反序列化利用的便捷工具,可以很方便的生成基于多种环境的反序列化EXP.ja ...
- 全面了解Nginx到底能做什么
最近做项目需要动静分离,便用nginx的反向代理来实现.后来看到一篇好文,记录下. 来自https://www.jianshu.com/p/8bf73d1a758c 前言 本文只针对Nginx在不加载 ...
- 【剑指offer】42.和为S的两个数字
42.和为S的两个数字 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 示例: 输入:[1,2,4,7,11 ...
- Bat脚本备份sqlserver 表结构、存储过程、函数、指定表数据
Bat脚本备份sqlserver 表结构.存储过程.指定表数据: @echo off cd /d %~dp0 ::备份表结构.存储过程和部分配置表的数据 set LogFile=report.log ...
- Spring,Spring-boot(一)
前言 Spring作为java开源世界第一开源框架,已经成为事实上的Java EE开发标准. 最根本的使命就是简化Java开发. 不重复制造车轮 Don't reinvent the wheel .从 ...
- informix错误代码小结
informix错误代码小结 所有错误可以用finderr+错误代码查到,英文的,这里中文注释便于理解. -100 错误的描述:C-ISAM错误:向具有唯一索引的字段加入一个重复值. 系统的操作:该 ...
- lwIP(Light Weight IP)协议
信号量 信号量结构体:struct sys_semt struct _sys_sem { void *sem; }; err_t sys_sem_new(sys_sem_t *sem, u8_t c ...