1.排序+模糊查询
Aggregation aggregation1 = Aggregation.newAggregation(Aggregation.match(Criteria.where("shopName").regex("^.*" + "1号" + ".*$")),Aggregation.sort(new Sort(Sort.Direction.DESC,"eventTime")));List
2.分组+统计
Criteria criteria = Criteria.where("eventTime").regex(date);// dau uvAggregation agg = Aggregation.newAggregation(Aggregation.match(criteria),Aggregation.group("channel", "deviceId"),Aggregation.group("channel").count().as("dau"));List
3.对时间格式做处理(yyyy-MM-dd HH:mm:ss -> yyyy-MM-dd)进行分组排序
//对原油eventTime字段进行处理生成新的date字段
ProjectionOperation as = Aggregation.project("shopId", "date","deviceId").andExpression("eventTime").substring(0, 10).as("date");
GroupOperation group = Aggregation.group("shopId","date","deviceId");
AggregationOperation aggOper = Aggregation.group("shopId","date").count().as("uv");