$pow(幂运算)
最后更新:2026-10-09
$pow(幂运算)
$pow计算数值的幂,接受两个参数:底数与指数,即底数的指数次方。常用于面积体积计算、复利、缩放等场景,例如半径平方求圆面积、10的n次方做数值缩放。指数为0时结果为1;0的0次方在MongoDB中返回1。注意负数底数配非整数指数时返回null,因为结果不是实数。参数为null或缺失时返回null。
| 分类 | 数学 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $pow: [ <底数>, <指数> ] }
⚙️ 参数
| 底数 | 数值或解析为数值的表达式。 |
|---|---|
| 指数 | 指数表达式;底数为负时指数必须是整数。 |
返回值:底数的指数次方;负数底数配非整数指数、null或缺失时返回null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $pow:半径平方求圆面积(π取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$pow的0次方结果是什么?
A任何底数的0次方为1,0的0次方也是1。