新しいデータ フィールドの計算
コレクション内の 1 つ以上のフィールドのデータを組み合わせて 1 つの計算フィールドを作成できます。例としては次のことができます。
フィールドを時間単位から秒単位、または華氏から摂氏に変換
価格フィールドと数量フィールドを掛け合わせて合計金額を作成
配列内の複数の行アイテムを組み合わせて合計を計算
Considerations
計算フィールドの作成
計算フィールドは、単純な式または MQL 式演算子を使用して既存のフィールドのデータを組み合わせることで作成します。
注意
計算フィールドの定義には、単純な式言語または演算子式言語のいずれかを含めることができます。同じ定義内で単純式言語と演算子式言語の両方を使用することはできません。
計算フィールドを作成するには、
Fieldsペインの隅にあるAdd Field をクリックします。
Calculated を選択します。
定義する計算フィールドの Field Name を入力します。ドット表記を使用してネストされたフィールドを指定できます。たとえば、
metadata.target
などがあります。[Save Field] をクリックします。
計算フィールドはFieldsペインにイタリック体で表示されます。
単純式
次の単純な式言語を計算フィールドで使用できます。
式言語 | 例 |
---|---|
フィールド名 | orderTotal 'orderTotal' "orderTotal" |
リテラル数字 | 2 0.5 |
数学演算子 | + - * / |
括弧 | ( ) |
引用符で囲まれた文字列の外側にある空白は、式に含まれません。
例
次の例は、計算フィールドを定義するための有効な単純式です。
bathrooms
フィールドをbedrooms
フィールドに追加する。
bathrooms + bedrooms
total amount
フィールドに 1.1 を掛けます。
'total amount' * 1.1
sensor.temp
フィールドから32
を引いて、 5
を掛けて 9
で割ります。
(sensor.temp - 32)*5/9
演算子式
式演算子を使用して、より複雑な計算フィールドを定義できます。
例
次の例は、計算フィールドを定義するための有効な演算子式です。
price
フィールドに0.075
を掛けます。
{ $multiply: [ "$price", 0.075 ] }
複数の行アイテムフィールドを配列で結合し、合計を計算します。
{ $reduce: { input: '$items', initialValue: 0, in: { $sum : ["$$value", { $multiply: ["$$this.price", "$$this.quantity"] } ] } } }
Tip
計算フィールドは、別の計算フィールドの定義で使用できます。
たとえば、次の定義で salesTax
計算フィールドを作成したとします。
{ $multiply: [ "$price", 0.075 ] }
次に、定義でsalesTax
フィールドを使用するtotalCost
計算フィールドを作成できます。
{ $sum: ["$price", "$salesTax"] }
リテラル文字列
$literal
演算子を使用して、計算フィールドの値を文字列に設定できます。
例
以下のフィールド定義では、my string
の値が割り当てられています。
{ $literal: "my string" }
計算フィールドの編集
計算フィールドの定義は変更できます。
Fieldsペインで、変更する計算フィールドの名前の横にあるEllipsis (...)をクリックします。
Modify field を選択します。
Value Expressionを更新します。
[Save Field] をクリックします。
チャートで計算フィールドを使用している場合、チャートは新しい計算フィールド定義を反映して更新されます。
計算フィールドの削除
計算フィールドを削除すると、Atlas Charts はデータ ソースを再サンプリングし、Fields ペインを更新して、チャートを更新します。計算フィールドがエンコーディングまたはフィルターで使用されていた場合は、そのフィールドが Fields ペインから削除されてもチャートに残ります。
計算フィールドを削除するには:
Fieldsペインで、削除する計算フィールドの名前の横にあるEllipsis (...)をクリックします。
Remove field を選択します。