Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$pow(集計)

項目一覧

  • 定義
  • 動作
$pow

指定した指数まで数値を上げ、結果を返します。 $powの構文は次のとおりです。

{ $pow: [ <number>, <exponent> ] }

<number>式は、数値に変換される限り、有効なであれば何でも使用できます。

<exponent>式は、数値に変換される限り、どのような有効なでもかまいません。

0を負の指数に上げることはできません。

入力型が混在している場合、$pow は小さい入力型を 2 つのうち大きい方に昇格させます。型が大きいとみなされるのは、より広い範囲の値を表す場合です。数値型の最小値から最大値の順は、integer → long → double → decimal です。

演算がオーバーフローして、大きい方のデータ型で表される範囲を超えない限り、大きい方の入力型によって結果型も決まります。オーバーフローの場合、$pow は以下の順序に従って結果を昇格させます。

  • より大きな入力型が integer の場合、結果型は long に昇格します。

  • より大きな入力型が long の場合、結果型は double に昇格します。

  • 大きい方の型が double または decimal の場合、オーバーフロー結果は正または負の無限大として表されます。結果型の昇格は行われません。

引数がnullの値に解決されるか、欠落しているフィールドを参照する場合、 $pownullを返します。 いずれかの引数がNaNに解決された場合、 $powNaNを返します。

結果

{ $pow: [ 5, 0 ] }

1

{ $pow: [ 5, 2 ] }

25

{ $pow: [ 5, -2 ] }

0.04

{ $pow: [ -5, 0.5 ] }

NaN

次のドキュメントを含むquizzesというコレクションを作成します。

db.quizzes.insertMany( [
{
_id : 1,
scores : [
{ name : "dave123", score : 85 },
{ name : "dave2", score : 90 },
{ name : "ahn", score : 71 }
]
},
{
_id : 2,
scores : [
{ name : "li", quiz : 2, score : 96 },
{ name : "annT", score : 77 },
{ name : "ty", score : 82 }
]
}
] )

次の例では、各クイズの分散を計算します。

db.quizzes.aggregate( [
{ $project: { variance: { $pow: [ { $stdDevPop: "$scores.score" }, 2 ] } } }
] )

この操作は次の結果を返します。

{ _id : 1, variance : 64.66666666666667 }
{ _id : 2, variance : 64.66666666666667 }

戻る

$percentile

項目一覧