该 $pow
运算符用于将数字提升到指定的指数。 在文档中需要数学计算的各种方案中,这非常有用。
语法
{ $pow: [ <number>, <exponent> ] }
参数
说明 | |
---|---|
<number> |
要提高到指数的基数。 |
<exponent> |
要提高基数的指数。 |
示例
示例 1:计算数字的平方
假设你想要计算文档中字段fullSales
的sales
平方。
db.collection.aggregate([
{
$project: {
fullSalesSquare: { $pow: [ "$sales.fullSales", 2 ] }
}
}
])
此输出显示 fullSalesSquare
字段包含的 fullSales
正方形 。
[
{ "_id": 1, "sales": { "fullSales": 10 }, "fullSalesSquare": 100 },
{ "_id": 2, "sales": { "fullSales": 20 }, "fullSalesSquare": 400 },
{ "_id": 3, "sales": { "fullSales": 30 }, "fullSalesSquare": 900 }
]
示例 2:计算特定类别的总销售额的幂
如果要计算 totalSales
“DJ 耳机”类别的幂为 3:
db.collection.aggregate([
{
$unwind: "$sales.salesByCategory"
},
{
$match: { "sales.salesByCategory.categoryName": "DJ Headphones" }
},
{
$project: {
totalSalesCubed: { $pow: [ "$sales.salesByCategory.totalSales", 3 ] }
}
}
])
此输出显示 totalSales
“DJ 耳机”类别的幂为 3 的值:
[
{
"_id": 4,
"category": "DJ Headphones",
"sales": { "salesByCategory": { "totalSales": 5 } },
"totalSalesCubed": 125
},
{
"_id": 5,
"category": "DJ Headphones",
"sales": { "salesByCategory": { "totalSales": 10 } },
"totalSalesCubed": 1000
}
]