如何在 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"));