2016-04-13 14 views
1

私は2つのプロパティでデータをグループ化しようとしており、各グループに対して2つのプロパティを合計しています。両方のフィールド(値と量)で同じ合計が得られているので、私のコードはちょっとだけオフになっています。私は何が欠けていますか?ありがとう!linq.js group by、複数のフィールドを集計

コード -

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(); 

答えて

2

[OK]を、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(); 

ヌルの根拠ではありません私には明らかで、sum関数のプロパティ名には `.x 'の引用符が必要でした。ここでジェフの答えからのソリューションのための

インスピレーション - https://stackoverflow.com/a/15647792/2011729

+0

機能が期待されている場合null'なので 'に渡すには、恒等関数に置き換えられます。この場合、 'value'と' quantity'プロパティを含むオブジェクトを生成する必要があります。あなたのオリジナルは有効な表現ではありませんでした。そして、あなたが理解したように、セレクタを 'sum()'関数に渡す必要がありました。 –

関連する問題