MongoDBでは、$divide
集計パイプライン演算子は、ある数値を別の数値で除算し、結果を返します。
$divide
を使用するには 、配列で数値を渡します。 $divide
演算子は、最初の数値を2番目の数値で除算します。つまり、最初の数値は被除数で、2番目の数値は除数です。
引数は、数値に解決される限り、任意の有効な式にすることができます。
例
data
というコレクションがあるとします。 次のドキュメントで:
{ "_id" : 1, "a" : 1000, "b" : 2 }
$divide
を使用できます 集計パイプライン内の演算子を使用して、これらの数値の1つを他の数値で除算します。
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "result" : 500 }
b
を分割したい場合 a
によるフィールド フィールドでは、それらを交換する必要があります。
例:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "result" : 0.002 }
負の数
コレクションに次のドキュメントを追加するとします。
{ "_id" : 2, "a" : 1000, "b" : -2 }
これには負の数が含まれます。しかし、それは問題ではありません。負の数はまだ数であり、任意の数を負の数で割ることができるからです。
例:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "result" : 500 } { "a" : 1000, "b" : -2, "result" : -500 }
ここでは、負の数を正の数で割るように切り替えられます。
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
結果:
{ "a" : 1000, "b" : 2, "result" : 0.002 } { "a" : 1000, "b" : -2, "result" : -0.002 }
自分の番号を追加
必ずしもドキュメント内の数字だけに制限されているわけではありません。フィールドを固定量で割る必要がある場合は、独自の数値を使用できます。
例:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", 5 ] } }
}
]
)
結果:
{ "result" : 5000 } { "result" : 5000 }