$pow (累乗)
最終更新:2026-10-09
$pow (累乗)
$pow は数値を累乗します。引数は底と指数の 2 つで、底の指数乗を返します。面積・体積の計算、複利計算、スケーリング(円の面積のために半径を 2 乗する、10 の累乗で値をシフトするなど)に使われます。指数が 0 なら 1 になり、MongoDB では 0 の 0 乗も 1 を返します。負の底と非整数の指数の組み合わせは実数にならないため null を返すことに注意してください。いずれかの引数が null または欠落していると null を返します。
| カテゴリ | 数学 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $pow: [ <base>, <exponent> ] }
⚙️ パラメータ
| 底 | 数値、または数値に解決される式。 |
|---|---|
| 指数 | 指数の式。底が負の場合は整数である必要があります。 |
戻り値:底を指数で累乗した値。負の底に非整数の指数を指定した場合、または引数が null や欠落している場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $pow: 半径の2乗から円の面積(π=3.14)
db.shapes.aggregate([
{ $project: {
area: { $multiply: [3.14, { $pow: ['$radius', 2] }] }
} }
])
出力:
{ '_id': 1, 'area': 28.26 }
{ '_id': 2, 'area': 12.56 }
📌 注意事項
- 0 の 0 乗は 1 を返す
- 負の底と非整数の指数(-8 の 1/3 乗など)は null を返す
- 0.5 乗で平方根を取れるが、$sqrt の方が読みやすい
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$pow で平方根を取るには?
A指数に 0.5 を渡します。$pow: [9, 0.5] は 3 になります。専用の $sqrt を使う方法もあります。
Q$pow は負の底をサポートしますか?
A負の底の場合は指数が整数である必要があります。そうでないと結果が実数にならず null を返します。
Q指数が 0 のとき $pow は何を返しますか?
A任意の底の 0 乗は 1 です。0 の 0 乗も 1 になります。