MongoDBでは、$multiply
集計パイプライン演算子は、数値を乗算して結果を返します。
$multiply
を使用するには 演算子、配列内の演算子に番号を渡します。
引数は、数値に解決される限り、任意の有効な式にすることができます。
例
data
というコレクションがあるとします。 次のドキュメントで:
{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }
$multiply
を使用できます 集計パイプライン内の演算子を使用して、これらの数値の2つ以上を乗算します。
2つの数値を掛ける
これは、2つの数値を掛け合わせる例です。
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "result" : 2000 }
3つの数値を掛ける
今回も、3つの数値すべてを乗算することを除いて、ここにあります。
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
負の値
数値は正または負の場合があります。
コレクションに次のドキュメントを追加するとします。
{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }
次に、前の例をもう一度実行して、何が起こるかを見てみましょう。
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "result" : 2000 } { "a" : 1000, "b" : -2, "result" : -2000 }
そしてここに3つの数字があります:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 } { "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }
負の数に正の数を掛けると、積は常に負になります。ただし、2つの負の数または2つの正の数を乗算すると、積は常に正になります。
自分の番号を追加
必ずしもドキュメント内の数字だけに制限されているわけではありません。すべてのフィールドに固定量を掛ける必要がある場合は、独自の数値を使用できます。
例:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } }
}
]
)
結果:
{ "result" : 15000 } { "result" : 15000 }