mongodb的查询操作

1、条件匹配:MatchOperation

1
MatchOperation matchOperation = Aggregation.match(new Criteria().where("area_code").is(areaCode));

2、分组计数:GroupOperation + count

1
2
GroupOperation groupSource_typeOperation = Aggregation.group("source_type", "satisfied_degree")
    .count().as("count").first("source_type").as("source_type");

3、分组求和GroupOperation + sum

1
2
GroupOperation groupDeptOperation = groupDeptOperation = Aggregation.group("dept_name")
    .sum("evaluate_quantity").as("evaluate_quantity").first("dept_name").as("dept_name");

4、排序:SortOperation

1
SortOperation sortOperation = Aggregation.sort(new Sort(Direction.DESC,"evaluate_quantity"));

5、跳过:SkipOperation

1
SkipOperation skipOperation = Aggregation.skip(10);

6、限制查多少个:LimitOperation

1
LimitOperation limitOperation = Aggregation.limit(10);

7、执行查询

注意,Operation的顺序一定要写对,不然查出来有差异,是按照add进list的顺序执行,直接写在入参中也是一样

1
2
3
4
5
6
List<AggregationOperation> operations = new ArrayList<>();
operations.add(matchDeptOperation);
operations.add(groupDeptOperation);
operations.add(skipOperation );
operations.add(limitOperation);
AggregationResults<Map> aggregate = mongoTemplate.aggregate(Aggregation.newAggregation(operations), EvaluateConstant.EVALUATE_COLLECTION, Map.class);

 

  

 

posted @   蓝色土耳其  阅读(273)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示