文章目录
- 语法
- 使用
- 举例
MongoDB聚合运算符: p o w ‘ pow ` pow‘pow`聚合运算符用于求数字指定的指数并返回结果。
语法
{ $pow: [ <number>, <exponent> ] }
参数说明:
<number>
表达式可以是任何可解析为数值的表达式<exponent>
表达式可以是任何能够解析为数值的表达式- 零的指数不能是负值
使用
结果与输入类型相同,除非无法以该类型准确表示。在这些情况下:
- 如果结果可表示为64位整数,则32位整数将转换为 64 位整数。
- 如果结果无法表示为64位整数,则32位整数将转换为双精度型。
- 如果结果不能表示为64位整数,则64位整数将转换为double。
如果任一参数解析为null
值或引用缺少的字段,则$pow
返回null
。如果任一参数解析为NaN
,则$pow
返回NaN
。
例子 | 结果 |
---|---|
{ $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 }]}
] )
以下示例计算每个quiz
的方差:
db.quizzes.aggregate( [{ $project: { variance: { $pow: [ { $stdDevPop: "$scores.score" }, 2 ] } } }
] )
操作返回下面的结果:
{ _id : 1, variance : 64.66666666666667 }
{ _id : 2, variance : 64.66666666666667 }