MongoDB $pow 运算符
MongoDB 提供了不同类型的算术表达式运算符,用于聚合管道阶段, $pow运算符就是其中之一。此运算符用于查找指定指数的数字并返回结果。
句法:
{ $pow: [ , ] }
在这里,数字和指数是有效的表达式,直到它解析为数字。
- 如果输入的值解析为 null,则此运算符将返回 null。
- 如果输入的值解析为 NaN,则此运算符将返回 NaN。
- 如果输入的值引用了缺失的字段,则此运算符将返回 null。
结果将与输入具有相同的类型,但是当它无法在该类型中准确表示时可以更改它,例如在以下情况下:
- 如果结果表示为 64 位整数,则 32 位整数将转换为 64 位整数。
- 如果结果未表示为 64 位整数,则 32 位整数将转换为双精度数。
- 如果结果未表示为 64 位整数,则 64 位整数将转换为 double。
例子:
在以下示例中,我们正在使用:
Database: GeeksforGeeks
Collection: example
Document: two documents that contain the details of the shapes in the form of field-value pairs.
使用 $pow 运算符:
在这 例如,我们将使用 $pow运算符找到正方形(即(边) 2 )的面积。这里,$pow运算符包含两个参数,第一个是边域的值(即 2),第二个是指数(即 2)。
db.example.aggregate([
... {$match: {name: "Square"}},
... {$project: {area: {$pow: ["$side", 2]}}}])
在嵌入式文档中使用 $pow 运算符:
在 这个 例如,我们要找到(measurement.height +measurement.width) 2 的值 使用 $pow运算符。这里,$pow运算符包含两个参数,第一个是measurement.height 和measurement.width 字段值的总和,第二个是指数(即2)。
db.example.aggregate([ {$match: {name: "Rectangle"}},
... {$project: {result:
... {$pow: [{$add:["$measurement.height", "$measurement.width"]}, 2]}}}])