MongoTemplate复合条件查询
分、 排序、按时间查询
Query query = new Query();
//必须条件
Criteria c = Criteria.where("VINID").is(Map.get(vin));
//范围条件
if(!StringUtils.isEmpty(start)&&StringUtils.isEmpty(end)){
c.and("TIME1").gte(GetTime1(start));
}else if(StringUtils.isEmpty(start)&&!StringUtils.isEmpty(end)){
c.and("TIME1").lte(GetTime1(end));
}else if(!StringUtils.isEmpty(start)&&!StringUtils.isEmpty(end)){
//对同一个属性加两次限制需这样操作
c.andOperator(
c.where("TIME1").gte(GetTime1(start)),
c.where("TIME1").lte(GetTime1(end))
);
}
query.addCriteria(c);
//总数
num = (int) mongoTemplate.count(query,CarDataEx.class,"jmevTest");
System.out.println("总数:"+num);
ht.put("total", num);
//分页
query.skip((page-1)*rows).limit(rows);
//排序
query.with(new Sort(Sort.Direction.DESC,"TIME1"));
//query.with(new Sort(properties));
rst = mongoTemplate.find(query,CarDataEx.class,"jmevTest");
二分组查询
public Page<CourseDetail> listCourseDetails(QueryCourseDetailModel queryModel) {
//条件一 where gradeId in (集合) and mark=true
Criteria criteria = Criteria.where("gradeId").in(gradeIds).and("mark").is(true);
if (null != status && status.size() > 0) {
Criteria criteriaChild = new Criteria();
//条件二 criteriaChild 条件查询 ( teacherCommentStatus = XX or parentsReplyTeacherStatus =XX )
criteriaChild.orOperator(Criteria.where("teacherCommentStatus").in(status), Criteria.where("parentsReplyTeacherStatus").is(replayStatus));
}
//拼接最后语句 where gradeId in (集合) and mark=true and ( teacherCommentStatus = XX or parentsReplyTeacherStatus =XX )
criteria.andOperator(criteriaChild);
//分组条件
GroupBy groupBy = new GroupBy("gradeId")
.initialDocument("{ count: 0 }")
.reduceFunction("function (doc,pre){pre.count +=1 ;}");
//使用 mongoTemplate.group 分组查询
GroupByResults groupByResults = mongoTemplate.
group(criteria, "homework", groupBy, Homework.class);
//获取结果
BasicDBList list = (BasicDBList) groupByResults.getRawResults().get("retval");
list.stream().map(map -> {
BasicDBObject obj = (BasicDBObject) map;
......
return obj;
}).collect(Collectors.toList());
return list;
}
MongoTemplate复合条件查询的更多相关文章
- Linq和EF 做 单一条件查询 和 复合条件 查询 以及 多表 联合查询 示例
单一条件查询: var table2Object = (from t1 in db.table1 join t2 in db.table2 on t1.id equals t2.id select t ...
- mysql——多表——外连接查询——左连接、右连接、复合条件查询
), d_id ), name ), age ), sex ), homeadd ) ); ,,,'nan','beijing'); ,,,'nv','hunan'); ,,,'nan','jiang ...
- lucene复合条件查询案例——查询name域 或 description域 包含lucene关键字的两种方式
方式一:使用语法表达式查询 //查询name域 或 description域包含lucene关键字 QueryParser queryParser = new QueryParser("na ...
- MongoTemplate 分组分页复合条件查询
一.前言 最近项目使用MongoDB作为数据主要存取的地方 又是第一次接触MongoDB,也是踩了不少坑... 维护数据无非就是增删改查,而里面最复杂的就是查询了 所以来总结一下有关MongoDB的查 ...
- Mybatis中的复合条件查询
1.Map中根据字段名存儲: 定义接口:List<Student> selectByCondition1(Map<String,Object> map); 映射文件: < ...
- util-C# 复杂条件查询(sql 复杂条件查询)查询解决方案
ylbtech-funcation-util: C# 复杂条件查询(sql 复杂条件查询)查询解决方案 C# 复杂条件查询(sql 复杂条件查询)查询解决方案 1.A,Ylbtech.Model返回 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (35) ------ 第六章 继承与建模高级应用之TPH继承映射中使用复合条件
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-11 TPH继承映射中使用复合条件 问题 你想使用TPH为一张表建模,建模中使 ...
- HBase高性能复杂条件查询引擎
转自:http://blog.csdn.net/bluishglc/article/details/31799255 mark 写在前面 本文2014年7月份发表于InfoQ,HBase的PMC成员T ...
- jpa多条件查询重写Specification的toPredicate方法(转)
Spring Data JPA支持JPA2.0的Criteria查询,相应的接口是JpaSpecificationExecutor.Criteria 查询:是一种类型安全和更面向对象的查询 . 这个接 ...
随机推荐
- flask-login的简单实用
# encoding: utf-8 from flask import Flask, Blueprint from flask_login import (LoginManager, login_re ...
- jQuery——子元素筛选器
子元素筛选器 名称 :first-child JQ语法 jQuery( "selector:first-child" ) 说明 :first-child选择器用于匹配作为父元素的第 ...
- JQ中的FormData对象 ajax上传文件
HTML代码: <form enctype="multipart/form-data" method="POST" name="searchfo ...
- .NET开源工作流RoadFlow-Bug修改-1.8.2表单验证时ueditor编辑非空验证无效
RoadFlow生成的表单,Ueditor编辑器不能进行非空验证的BUG修改: 1.修改控制器:WorkFlowFormDesignerController红框处: 2.修改js文件:Scripts/ ...
- Android碎笔录2——按键的点击变色和圆角实现
android的Button默认写出来之后都是方形的直角,并且点击感很不明显,只要在drawable中加上一个xml就能解决这个问题: <?xml version="1.0" ...
- Jmeter CSV 参数化/检查点/断言
当参数的值没有规律且量不太大时,可以使用CSV Data set config这种方法. 案例: 应用Sogou自动搜索关键字: 软件开发测试,web功能自动化测试,性能自动化测试,Selenium以 ...
- 从数据库读取数据后将其输出成html标签
最常用的方法,使用JS或JQ JQ: $("#div").html("<span>我是HTML代码</span>"); JS: var ...
- 精通Groovy
https://www.ibm.com/developerworks/cn/education/java/j-groovy/j-groovy.html https://juejin.im/entry/ ...
- Java—IO流 字符流
java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码). 文件是byte byte byte ... 的数据序列. 文本文件是文本(char)序列按照某种编码方案(uf ...
- windows常用快捷命令
打开控制面板 control.exe 1.操作中心 wscui.cpl 2.Windows防火墙 Firewall.cpl 3.设备管理器 hdwwiz.cpl 4.Internet属性 inetcp ...