linq.js group by,聚合多个字段

时间:2016-04-13 02:09:33

标签: linq.js

我正在尝试按2个属性对数据进行分组,并为每个组添加两个其他属性。我的代码关闭了一点,因为我得到了两个字段(值和数量)相同的总和。我错过了什么?谢谢!

代码 -

var linq = Enumerable.from(data);
        var result = linq
            .groupBy(
                "{ pCo: $.portCo , sName: $.secName }",
                "$.value, $.quantity",
                "{ portCo: $.pCo, security: $.sName, value: $$.sum($.value), quantity: $$.sum($.quantity) }",
                "$.pCo + ' ' + $.secName")
            .toArray();

1 个答案:

答案 0 :(得分:2)

好的,在n次试验和(n-1)错误之后,使用以下语法使其工作:

var linq = Enumerable.from(data);
        var result = linq
            .groupBy(
                "{ pCo: $.portCo , sName: $.secName }",
                null,
                "{ portCo: $.pCo, security: $.sName, value: $$.sum('$.value'), quantity: $$.sum('$.quantity') }",
                "$.pCo + ' ' + $.secName")
            .toArray();

null的基本原理对我来说并不清楚,我在sum函数中需要'$ .x'引用属性名称。

杰夫答案的解决方案的灵感来自 - https://stackoverflow.com/a/15647792/2011729