Spring Mongodata聚合查询

时间:2018-06-20 06:15:33

标签: mongodb spring-data spring-mongo

我尝试使用 spring-data-mongodb-> 1.10.11.RELEASE 通过简单的求和运算来实现聚合 我尝试了以下查询

db.transaction.aggregate([{
    $group: {
        _id:"null",
        netBalance: {
            $sum: "$netBalance"
        },
        referalBalance: {
            $sum: "$referalBalance"
        }
    }
}])

我终端的输出是

{ "_id" : "null", "netBalance" : 587432, "referalBalance" : 2940 }

当我尝试相同的查询时,使用spring mongodata

Aggregation aggregation = 
      Aggregation.newAggregation(
             Aggregation.group("netBalance")
                        .sum("netBalance")
                        .as("netBalance"));

结果与终端输出不同,我也无法在查询中添加第二个字段。如何修改spring mongodata调用以具有相同的查询?

1 个答案:

答案 0 :(得分:0)

使用spring,您将通过netBalance分组,而不是在shell中为null。要重现,只需将组参数保留为空(null会引发错误) 然后,您可以将sum应用于第二个字段。

尝试以下代码(未经测试,但必须可以工作):

Aggregation aggregation = 
      Aggregation.newAggregation(
             Aggregation.group()
                        .sum("netBalance").as("netBalance")
                        .sum("referalBalance").as("referalBalance"));