Spring Data + Mongo-没有组的字段的总和

时间:2016-07-24 16:08:23

标签: java spring mongodb mongodb-query spring-data

我有这样的匹配标准 -

Criteria criteria = new Criteria()
                .and("paidMobileMetadata").in(metadataList)
                .and("localDate").gt(startDate).lte(endDate);

现在我想得到一个字段的总和说“钱”属于上面的标准而不分组某些字段。

早些时候我有同样的问题,我必须在某个领域对这个匹配标准进行分组,我这样做了 -

Aggregation agg = Aggregation.newAggregation(
                Aggregation.match(new Criteria()
                    .and("paidMobileMetadata").in(metadataList)
                    .and("localDate").gt(startDate).lte(endDate)),
                Aggregation.group("anyField").sum("money").as("total")
        );

但是在这里我不能把它分组,mongo中有没有办法将所有文档分组,没有任何字段。

  

Explaination:   假设500行/ doc属于我的标准,并且都有金钱领域。我想要所有500个钱的总和,没有分组。

当我尝试这样的时候 -

Aggregation agg = Aggregation.newAggregation(
                Aggregation.match(new Criteria()
                    .and("paidMobileMetadata").in(metadataList)
                    .and("localDate").gt(startDate).lte(endDate)),
                Aggregation.group(null).sum("money").as("total")
        );

给我异常说聚合字段不能为空或空!

1 个答案:

答案 0 :(得分:3)

只传入没有参数,因为没有提供一个等于null:

Aggregation agg = Aggregation.newAggregation(
                Aggregation.match(new Criteria()
                    .and("paidMobileMetadata").in(metadataList)
                    .and("localDate").gt(startDate).lte(endDate)),
                Aggregation.group().sum("money").as("total")
        );