【问题标题】:Spring Mongodata Aggregation querySpring Mongodb 聚合查询
【发布时间】:2018-06-20 06:15:32
【问题描述】:

我尝试使用 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 调用以具有相同的查询?

【问题讨论】:

  • 你能发布一些示例数据和第二个查询的输出吗?
  • 您可以在应用程序日志中验证spring data mongo生成的实际聚合查询是什么

标签: mongodb spring-data spring-mongo


【解决方案1】:

使用 spring,您在 shell 中按 netBalance 而不是 null 进行分组。要重现,只需将组参数留空(null 将引发错误) 然后你可以在第二个字段上应用 sum 。

试试这个代码(未经测试,但必须有效):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2017-05-11
    • 2015-12-17
    相关资源
    最近更新 更多