使用spring data mongodb v1.8

需求1、

数据结构如下。说明:改集合记录的是公司各个系统的访问情况(localPath表示系统,requestTime 表示请求时间,字符串类型,)

image.png

需求:选中某一天,然后按照系统和小时进行分组,统计这一天中每个小时各个系统的访问情况。

业务代码:

Criteria criteria = new Criteria();
criteria.andOperator(Criteria.where("createTime").lt(DateUtil.addDay(sdf.parse(sdf.format(date)), 1)), Criteria.where("createTime").gte(sdf.parse(sdf.format(date))));
// 匹配查询
MatchOperation matchOperation = Aggregation.match(criteria);// localPath
// 返回参数
ProjectionOperation return1 = Aggregation.project("localPath").andExpression("substr(requestTime,11,2)").as("dimension");
// 按条件分组
GroupOperation go2 = Aggregation.group("dimension", "localPath").count().as("times");
// 设置排序
SortOperation sortOperation = Aggregation.sort(Sort.Direction.ASC, "localPath", "dim