构建条件方法

@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 条件查询的更多相关文章

  1. MongoTemplate复合条件查询

    分. 排序.按时间查询 Query query = new Query();        //必须条件        Criteria c = Criteria.where("VINID& ...

  2. SpringBoot之MongoTemplate的查询可以怎么耍

    学习一个新的数据库,一般怎么下手呢?基本的CURD没跑了,当可以熟练的增.删.改.查一个数据库时,可以说对这个数据库算是入门了,如果需要更进一步的话,就需要了解下数据库的特性,比如索引.事物.锁.分布 ...

  3. java中mongo的条件查询

    @Override public Page<ProductInfo> findAll(Pageable pageable, ProductInfo productInfo) { //创建一 ...

  4. MongoDBTemplate多条件查询的问题

    问题: 在使用Spring Data MongoDB 进行条件查询数据时,发现条件判断不起作用,结果会返回所有的数据. Criteria criteria = new Criteria(); crit ...

  5. jqGrid jqGrid分页参数+条件查询

    HTML <div class="row"> <div class="col-sm-20"> <form id="for ...

  6. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  7. Oracle学习总结_day03_day04_条件查询_排序_函数_子查询

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...

  8. [NHibernate]条件查询Criteria Query

    目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...

  9. PHP-----练习-------租房子-----增删改查,多条件查询

    练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php <?php class DBDA ...

随机推荐

  1. 洛谷 P4008 [NOI2003]文本编辑器

    先推广一下 求赞 我们考虑这样的一个问题 给你一个序列,要求你支持插入,删除,查询单点值 如果用数组,查询O(1),插入删除最坏O(n) 如果用链表,插入删除O(1),查询最坏O(n) 如果用平衡树- ...

  2. python 01篇

    一.Pycharm 使用小tips 1.1 pycharm创建项目时,选择Python环境,不使用默认的虚拟环境 1.2 如何在pycharm中查看python版本 路径:File-Settings- ...

  3. python使用笔记009--小练习

    1.密码生成器 1 ''' 2 1.写一个生产密码的程序,输入几,就产生几条密码,密码产生的不重复. 3 要求密码:长度6-12,密码必须包含 大写字母.小写字母.数字 4 产生完密码后存到一个文件里 ...

  4. PYTHON 读取ADB记录文件输入ACTIVITY

    import re lb=[] with open("daaa.txt",encoding="utf8") as f: data = f.readlines() ...

  5. 从代码生成说起,带你深入理解 mybatis generator 源码

    枯燥的任务 这一切都要从多年前说起. 那时候刚入职一家新公司,项目经理给我分配了一个比较简单的工作,为所有的数据库字段整理一张元数据表. 因为很多接手的项目文档都不全,所以需要统一整理一份基本的字典表 ...

  6. 【剑指offer】05. 替换空格

    剑指 Offer 05. 替换空格 知识点:: 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 输入:s = "We are happy.& ...

  7. DNS服务器安全---通过ipset对DNS异常解析流量的源IP地址进行管控

    ipset介绍 ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以 ...

  8. 【数论】A%B Problem luogu-1865

    题目描述 让你输出区间内的素数的个数 分析 预处理筛法,在随便搞一下就好了. AC代码 #include <bits/stdc++.h> using namespace std; #def ...

  9. 【并查集模板】并查集模板 luogu-3367

    题目描述 简单的并查集模板 输入描述 第一行包含两个整数N.M,表示共有N个元素和M个操作. 接下来M行,每行包含三个整数Zi.Xi.Yi 当Zi=1时,将Xi与Yi所在的集合合并 当Zi=2时,输出 ...

  10. Git的使用(六)

    前言 版本管理工具总结: 开发团队项目,对项目的版本进行管理. 使用过的版本管理工具: TFS.SVN与Git. TFS:管理项目,通过visual Studio管理源码,拉取分支,提交代码等.也可以 ...