$sqrt(集計)
定義
$sqrt
正の数の平方根を計算し、その結果を double として返します。
$sqrt
の構文は次のとおりです。{ $sqrt: <number> } 引数は、 負でない数に変換 される限り、どのような有効な 式 でも使用できます。式の詳細については、「式演算子 」を参照してください。
動作
デフォルトの戻り値の型は double
です。少なくとも1つのオペランドが decimal
の場合、戻り値の型は10進数です。
引数がnull
の値に解決されるか、欠落しているフィールドを参照する場合、 $sqrt
はnull
を返します。 引数がNaN
に解決されると、 $sqrt
はNaN
を返します。
$sqrt
負の数のエラー。
例 | 結果 |
---|---|
{ $sqrt: 25 } | 5 |
{ $sqrt: 30 } | 5.477225575051661 |
{ $sqrt: null } | null |
例
コレクション points
には次のドキュメントが含まれています。
{ _id: 1, p1: { x: 5, y: 8 }, p2: { x: 0, y: 5} } { _id: 2, p1: { x: -2, y: 1 }, p2: { x: 1, y: 5} } { _id: 3, p1: { x: 4, y: 4 }, p2: { x: 4, y: 0} }
次の例では$sqrt
を使用して、 p1
とp2
の距離を計算します。
db.points.aggregate([ { $project: { distance: { $sqrt: { $add: [ { $pow: [ { $subtract: [ "$p2.y", "$p1.y" ] }, 2 ] }, { $pow: [ { $subtract: [ "$p2.x", "$p1.x" ] }, 2 ] } ] } } } } ])
この操作は次の結果を返します。
{ "_id" : 1, "distance" : 5.830951894845301 } { "_id" : 2, "distance" : 5 } { "_id" : 3, "distance" : 4 }