0

なし$プロジェクト前段:$プロジェクトの段階ではMongoDBの集約パイプラインPHP - 私は私の集約パイプラインでこのようなサブアレイ構造を有するサブアレー

{ 
    "_id": "london_10:2016-10-07 12", 
    "data": { 
     "voltage_a": 0.008888, 
     "voltage_b": 0.008888, 
     "voltage_c": 0.008888, 
    }, 
    "Voltage (V)": 0.008888, 
    "datetime": "2016-10-07T11:25:46" 
    }, 

は、私は部分配列のデータですべてを通過しています「それが現在存在しているよう:

[ 
    '$project' => [ 
     'data' => '$data', 
     'Voltage (V)' => [ 
     '$divide' => [ 
      ['$add' => ['$data.voltage_a', '$data.voltage_b', '$data.voltage_c']] 
     ], 
     ], 
    ] 
    ] 

は、どのように私はそれが 『電圧(V)』と 『日時』、すなわちフラット構造と同じレベルでvoltage_a、voltage_bとvoltage_cを出力するデータがこのようなプロジェクトのですか?あなたは"Voltage (V)""datetime"と同じレベルでvoltage_avoltage_bと​​で出力を持つフラットな構造のために

+0

あなたは右、上部構造を実現したいですか? – rbr94

+0

あなたの予想される出力は何ですか? –

答えて

0

は、あなたのパイプラインを実行し、次のように:

[ 
    '$project' => [ 
     'voltage_a' => '$data.voltage_a', 
     'voltage_b' => '$data.voltage_b', 
     'voltage_c' => '$data.voltage_c', 
     'Voltage (V)' => [ 
      '$divide' => [ 
       [ '$add' => ['$data.voltage_a', '$data.voltage_b', '$data.voltage_c'] ] 
      ], 
     ], 
     'datetime' => 1 
    ] 
] 
+0

ありがとうございます。これは、明示的にすべてのフィールドを記述することによってこれを行う唯一の方法ですか?この例では3つ以上のものがあります。 – ugotchi

+0

はい、これが唯一の方法です。 – chridam

関連する問題