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 ...
随机推荐
- phpstudy后门复现遇到的坑
这几天遇到一个phpstudy后门的站之前没复现过,结果遇到了深坑记录一下 首先用这个脚本去验证是没问题的: https://github.com/NS-Sp4ce/PHPStudy_BackDoor ...
- python 爬取网络小说 清洗 并下载至txt文件
什么是爬虫 网络爬虫,也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人.其目的一般为编纂网络索引. 网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引.网络爬虫可以 ...
- 【16位RAW图像处理三】直方图均衡化及局部直方图均衡用于16位图像的细节增强。
通常我们生活中遇到的图像,无论是jpg.还是png或者bmp格式,一般都是8位的(每个通道的像素值范围是0-255),但是随着一些硬件的发展,在很多行业比如医疗.红外.航拍等一些场景下,拥有更宽的量化 ...
- Album++:分布式事务专辑-基础概念
(一)基础概念:↓ ↓ ↓ 1.1)什么是事务 什么是事务?举个生活中的例子:你去小卖铺买东西,"一手交钱,一手交货"就是一个事务的例子,交钱和交货必 须全部成功, 事务才算成功, ...
- CF1032G Chattering
CF1032G Chattering 题意 思路 对于每一个位置,它转移的范围是确定的. 对于一段可以走到的区间,我们可以求出区间中所有点再能走到区间范围. 于是这个就可以倍增进行转移. 如何快速求出 ...
- C语言学习(三)
一.数组.循环.判断条件 #include<stdio.h> int main(){ int a =100; int b =200; int i; int arr [5]; if (a ...
- WebRTC 用例和性能
WebRTC 用例和性能 实现低延迟.点对点传输是一项艰巨的工程挑战:有 NAT 遍历和连接检查.信令.安全.拥塞控制和无数其他细节需要处理.WebRTC 代表我们处理以上所有内容,这就是为什么它可以 ...
- 打开随身U盘_办公专用盘 2019年11月29日
;;; ; 打开随身U盘_办公专用盘 2019年11月29日 ; https://www.autoahk.com/?p=16553; https://www.cnblogs.com/delphixx/ ...
- Sql Server备份表,动态生成表名称
1.常用的数据库备份表语句 SELECT * INTO tableNameNew FROM tableName 2.动态备份表,且备份表名称后面增加三位随机字符和当前日期 1 DECLARE @bak ...
- 探究Presto SQL引擎(1)-巧用Antlr
一.背景 自2014年大数据首次写入政府工作报告,大数据已经发展7年.大数据的类型也从交易数据延伸到交互数据与传感数据.数据规模也到达了PB级别. 大数据的规模大到对数据的获取.存储.管理.分析超出了 ...