如何在 Spring 引导 Mongo 中对投影数据应用聚合?
How to apply Aggregation on Projected data in Spring boot Mongo?
我有一个要求,比如一个员工 class,其中包含一个字段作为入职日期。
所以我正在做的是
Query query = new Query();
query.addCriteria(Criteria.where("joiningdate").gte("").andOperator(where("joiningdate").lt("")));
List<Employeeemployee> trainings = mongoTemplate.find(query, Employee.class);
所以我根据给定的日期范围过滤掉了所需的员工。现在我想对返回值应用聚合来计算例如总工资。
我也查看了几个示例和 Whosebug 问题,但没有找到我要找的东西。
有什么帮助吗?
第一步查询符合条件的数据,然后通过$sum函数汇总工资总额
Criteria criteria = Criteria.where("joiningdate").gt("").lt("");
// Just specify the query field
Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(criteria), Aggregation.group("").sum("").as("totalSalary"));
AggregationResults<Map> results = mongoTemplate.aggregate(aggregation, "", Map.class);
Map map = results.getMappedResults().get(0);
System.out.println(map.get("totalSalary"));
我有一个要求,比如一个员工 class,其中包含一个字段作为入职日期。 所以我正在做的是
Query query = new Query();
query.addCriteria(Criteria.where("joiningdate").gte("").andOperator(where("joiningdate").lt("")));
List<Employeeemployee> trainings = mongoTemplate.find(query, Employee.class);
所以我根据给定的日期范围过滤掉了所需的员工。现在我想对返回值应用聚合来计算例如总工资。
我也查看了几个示例和 Whosebug 问题,但没有找到我要找的东西。 有什么帮助吗?
第一步查询符合条件的数据,然后通过$sum函数汇总工资总额
Criteria criteria = Criteria.where("joiningdate").gt("").lt("");
// Just specify the query field
Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(criteria), Aggregation.group("").sum("").as("totalSalary"));
AggregationResults<Map> results = mongoTemplate.aggregate(aggregation, "", Map.class);
Map map = results.getMappedResults().get(0);
System.out.println(map.get("totalSalary"));