Aggregation.group("")。sum("")如何编写计算公式?

时间:2018-03-13 05:00:22

标签: mongodb mongodb-query aggregation-framework aggregate mongotemplate

  

这是Mongo脚本

db.servicer_online_time.aggregate(
    [
        {
            $group: {
                _id : "$csId" ,
                totalTime: {
                    $sum: {
                        $multiply: ["$offlineTime", "$onlineTime"]
                    }
                }
            }
        },
    ]
);
  

这是Java代码

GroupOperation groupOperation = Aggregation.group("csId").sum("$multiply: [\"$offlineTime\", \"$onlineTime\"]").as("");

脚本可以写在" sum()"功能?我该怎么写?

1 个答案:

答案 0 :(得分:0)

您可以尝试在投影操作中使用 SpEL andExpression 首先投影字段,然后在群组操作中汇总新字段:

Aggregation agg = newAggregation(
    project("csId").andExpression("offlineTime * onlineTime").as("timesProduct"),
    group("csId").sum("timesProduct").as("totalTime")
);