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 ); |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步