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 ...
随机推荐
- 简单学习java内存马
看了雷石的内存马深入浅出,就心血来潮看了看,由于本人java贼菜就不介绍原理了,本文有关知识都贴链接吧 前置知识 本次主要看的是tomcat的内存马,所以前置知识有下列 1.tomcat结构,tomc ...
- 二、从GitHub浏览Prism示例代码的方式入门WPF下的Prism之Modules的几种加载方式
这一篇梳理Prism中07示例Module的几种加载方式. 07示例分为了5个,有5种不同的Module加载方式. 我们开始学习加载Modules 观察07-Modules-Appconfig示例 分 ...
- C语言:编程求任意月份的天数
闰年问题,因为二月份的天数与闰年有关.闰年的判断依据是:若某年能被4整除,但不能被100整除,则这一年是闰年:若某年能被400整除,则这一年也是闰年 #include <stdio.h> ...
- Swift-使用transform 实现重复平移动画
摘要 要实现一组重复的动画,本质上就是找到动画开始点.结束点.在动画结束的时候,触发开始点,持续这样的动作. 这里面要梳理的逻辑就是1.触发开始点和2.监听动画结束点.这两个逻辑是实现重复动画的基础. ...
- HTML5-CSS(一)
一.创建 CSS 样式表有三种方式 1. 元素内嵌样式<p style="color:red;font-size:50px;">这是一段文本</p>解释:即 ...
- 微信小程序云开发-云存储-上传单个视频到云存储并显示到页面上
一.wxml文件 <!-- 上传视频到云存储 --> <button bindtap="chooseVideo" type="primary" ...
- 足不出户,一探古今,打造线上3D数字博物馆!
随着3D技术的不断革新,为了让更多的用户领略历史之美,越来越多的博物馆开始举办线上展览.通过模拟不同的环境.灯光投影.360°无死角放大缩小展品,观众可以享受到身临其境的沉浸体验.不仅如此,给展品加上 ...
- netcore一键nssm发布为windows服务
AntDeploy 是我开发一款开源一键部署工具包 发布功能支持: docker容器一键部署 docker镜像一键发布 支持iis一键部署 windows服务一键部署 linux服务一键部署 支持增量 ...
- (Opencv07)绘制边框
(Opencv07)绘制边框 cv2.boundingRect(img) 这个函数可以获得一个图像的最小矩形边框一些信息 cv2.rectangle()可以画出该最小矩形边框 x, y ,w, h = ...
- Centos 7 安装mysql5.7 nginx tomcat