分、 排序、按时间查询

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

  1. Linq和EF 做 单一条件查询 和 复合条件 查询 以及 多表 联合查询 示例

    单一条件查询: var table2Object = (from t1 in db.table1 join t2 in db.table2 on t1.id equals t2.id select t ...

  2. mysql——多表——外连接查询——左连接、右连接、复合条件查询

    ), d_id ), name ), age ), sex ), homeadd ) ); ,,,'nan','beijing'); ,,,'nv','hunan'); ,,,'nan','jiang ...

  3. lucene复合条件查询案例——查询name域 或 description域 包含lucene关键字的两种方式

    方式一:使用语法表达式查询 //查询name域 或 description域包含lucene关键字 QueryParser queryParser = new QueryParser("na ...

  4. MongoTemplate 分组分页复合条件查询

    一.前言 最近项目使用MongoDB作为数据主要存取的地方 又是第一次接触MongoDB,也是踩了不少坑... 维护数据无非就是增删改查,而里面最复杂的就是查询了 所以来总结一下有关MongoDB的查 ...

  5. Mybatis中的复合条件查询

    1.Map中根据字段名存儲: 定义接口:List<Student> selectByCondition1(Map<String,Object> map); 映射文件: < ...

  6. util-C# 复杂条件查询(sql 复杂条件查询)查询解决方案

    ylbtech-funcation-util:  C# 复杂条件查询(sql 复杂条件查询)查询解决方案 C# 复杂条件查询(sql 复杂条件查询)查询解决方案 1.A,Ylbtech.Model返回 ...

  7. 《Entity Framework 6 Recipes》中文翻译系列 (35) ------ 第六章 继承与建模高级应用之TPH继承映射中使用复合条件

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-11  TPH继承映射中使用复合条件 问题 你想使用TPH为一张表建模,建模中使 ...

  8. HBase高性能复杂条件查询引擎

    转自:http://blog.csdn.net/bluishglc/article/details/31799255 mark 写在前面 本文2014年7月份发表于InfoQ,HBase的PMC成员T ...

  9. jpa多条件查询重写Specification的toPredicate方法(转)

    Spring Data JPA支持JPA2.0的Criteria查询,相应的接口是JpaSpecificationExecutor.Criteria 查询:是一种类型安全和更面向对象的查询 . 这个接 ...

随机推荐

  1. 接口调用 读取图片报错 Access to the path '' is denied.解决方案

    调用接口 读取服务器上 图片 报错: Server was unable to process request. ---> Access to the path '图片路径' is denied ...

  2. 前端之body标签中相关标签(一)

    一 字体标签   字体标签包含:h1~h6.<font>.<u>.<b>.<strong><em>.<sup>.<sub& ...

  3. Cookie实现留言板

    Cookie实现留言板 直接代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content- ...

  4. Java设计模式—原型模式

    原型设计模式是一种比较简单的设计模式,在项目中使用的场景非常多. 个人理解: 原型模式实现了对Java中某个对象的克隆功能,即该对象的类必须implements实现Cloneable接口来标识为可被克 ...

  5. makefile  模板 (template)

    本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile. 这些makefile都很简单,一般都是一看就会用,用法也很容 ...

  6. 01_微信小程序支付

    [支付流程] 1.小程序内调用登录接口,获取到用户的openid(我们这一步骤让前端去获取) 2.服务端代码这边生成订单 3.服务端调用支付统一下单的api 4.服务端将再次签名,返回5个参数(前端得 ...

  7. mysql 链接报 Can't connect to MySQL server on 'localhost' (10061)

    之前好好的,重启了下电脑就报了上面的问题... 解决办法很简单:重启下mysql的服务: win7系统,电脑-管理-服务和应用程序-服务,找到mysql重启 即可.

  8. tomcat本地部署正常linux服务器报404

    tomcat主页访问正常,tomcat自带的examples项目也可以访问,可自己的项目就报404,这是什么问题那? 仔细看了下 服务器webapp下面的文件,访问时候 我是访问的服务器ip/Wech ...

  9. Ten C++11 Features Every C++ Developer Should Use

    原版:http://www.codeproject.com/Articles/570638/Ten-Cplusplus-Features-Every-Cplusplus-Developer 译版:ht ...

  10. 查询SQL Server 版本信息

    select SERVERPROPERTY('ProductVersion') as ProductionVersion, SERVERPROPERTY('ProductLevel')as Produ ...