构建条件方法

@Overridepublic Query getQuery(ReportParam param){//checkMeenoAssert.hasLength(param.getUuid(),"uuid can not empty!");MeenoAssert.notNull(param.getChartType(),"chartType can not empty!");Query query = new Query();//uuidif(!StringUtils.isEmpty(param.getUuid())){query.addCriteria(Criteria.where("uuid").is(param.getUuid()));}//chartTypeif(param.getChartType() != null){query.addCriteria(Criteria.where("chartType").is(param.getChartType()));}//rowNameif(!StringUtils.isEmpty(param.getRowName())){query.addCriteria(Criteria.where("rowName").is(param.getRowName()));}//groupNameif(!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()));}//场景idif(param.getSceneId() != null){query.addCriteria(Criteria.where("sceneId").is(param.getSceneId()));}//物料idif(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;}

查询方法

@Overridepublic 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 多表多条件查询记录

    mongotemplate 多表多条件查询记录 在这里插入代码片

  2. mongoTemplate的GroupOperation分组查询及Criteria条件查询的使用

    mongoTemplate的GroupOperation分组查询及Criteria条件查询的使用 GroupOperation: //此处类似于SQL中的groupBy,group("&qu ...

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

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

  4. java mongodb 多表关联查询,多条件查询,分页,排序

    前言: 由于最近项目赶,版本迭代快,不知道大BOSS从哪里听别人说MongoDB用来做关系型数据库好,而且速度快,性能高:听到这话的我,立马就反驳了回去:"MongoDB不支持事物" ...

  5. MyBatis关联查询、多条件查询

    MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...

  6. excel vlookup多个条件匹配多列_Excel中的Vlookup函数,轻松实现多条件查询!

    VLOOKUP函数,原始数据中存在重复值 我们在使用VLOOKUP函数的时候,如果查找区域内有多个可以查找的到的值的话,Excel会默认返回第一个查找的到的值 在E2单元格中输入公式: =VLOOKU ...

  7. mysql多条件查询_使用dsum轻松搞定多条件查询,学会它,再也想用sumifs了

    在excel中条件求和想必大家都不陌生,这个可以说是我们工作中经常遇到的问题,常见的条件求和函数有sumif以及sumifs,但是还有一个更加强但知道的人却非常少的函数,他就是dsum函数,dsum相 ...

  8. Hibernate的条件查询的几种方式

    2019独角兽企业重金招聘Python工程师标准>>> 1. 第一种,用?占位符,如: //登录(用?占位符)public List<UserPO> LoginUser( ...

  9. php mysql or_mysql条件查询and or使用方法及优先级实例分析

    本文实例讲述了mysql条件查询and or使用方法及优先级.分享给大家供大家参考,具体如下: mysql and与or介绍 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来. 使 ...

最新文章

  1. php网页制作 博客,php响应式的个人博客网站设计
  2. keras核心已转储_转储Keras-ImageDataGenerator。 开始使用TensorFlow-tf.data(第2部分)
  3. iPad 如何创建UISplitViewController应用程序
  4. primefaces_使用WildFly 8.2.0.Final,Primefaces 5.1和MySQL 5的JDBC领域和基于表单的身份验证...
  5. React Native指南
  6. activiti高亮显示图片_【正点原子FPGA连载】第二十章SD卡读BMP图片HDMI显示实验领航者 ZYNQ 之嵌入式开发指南...
  7. 【转】Azure基本核心服务计费
  8. 【小夕精选】如何优雅而时髦的解决不均衡分类问题
  9. Java经典基础与高级面试36题和答案
  10. Go 把类型放在变量名后面,是特立独行还是另有机密?
  11. KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
  12. php mysql 简单留言板_php+mysql 最简单的留言板_PHP教程
  13. unity把场景和动画生成xml
  14. 关于移动硬盘的$recycle.bin病毒的处理方法
  15. 蚂蚁链发布BTN,有什么用?
  16. 【Windows 问题系列第 13 篇】如何修改 Windows10 的鼠标指针样式
  17. 简单工厂模式 简单例子
  18. bridging the gap between anchor-based and anchor-free detection via adaptive training sample select
  19. 各省GDP+人均GDP+固定投资+财政收支等面板dta数据(1949-2020年)
  20. aso优化师是什么_来肯云商app官网下载_做ASO优化师,只懂刷榜就够了吗

热门文章

  1. ggcor包的安装与绘图示例
  2. JGG | 肠道细菌加重小分子量卡拉胶诱发的直肠炎症
  3. 潜心学术,我删除了无数公众号,却将这10个置顶
  4. ISME: 北大吴晓磊组发现囊泡为细菌利用环境血红素提供全新途径
  5. 微生物组-宏基因组分析第8期(报名直播课免费参加线下2020.7,早鸟价仅剩1周)...
  6. Nature:人体菌群研究的25个里程碑
  7. pandas编写自定义函数高亮显示(highlight)dataframe中的指定内容(数值)(highlighting a specific values or content of a panda
  8. pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)
  9. R语言数据格式转换函数、数据类型判断函数(numeric、character、vector、matrix、data.frame、factor、logical)、R语言数据格式类型转换
  10. R语言sys方法:sys.chmod函数改变指定文件的权限、Sys.Date函数返回系统的当前日期、Sys.time函数返回系统的当前时间