MongoDB $multiply 运算符介绍
$multiply
是 MongoDB 中的一个聚合运算符,用于计算表达式中的两个数的乘积并返回结果。该运算符可以在聚合管道中使用。
语法
$multiply
运算符的语法如下:
{ $multiply: [ <expression1>, <expression2>, ... ] }
其中,<expression1>
和 <expression2>
是要相乘的两个表达式。可以使用任意数量的表达式进行乘法运算。
使用场景
$multiply
运算符通常用于聚合管道中的数值计算,例如计算订单的总价、计算员工的工资等。它还可以与其他聚合运算符一起使用,例如 $group
和 $project
。
示例
示例数据
假设我们有一个存储销售订单的 orders
集合,其中包含以下文档:
{ "_id": 1, "item": "apple", "price": 0.50, "quantity": 10 }
{ "_id": 2, "item": "orange", "price": 0.75, "quantity": 5 }
{ "_id": 3, "item": "banana", "price": 0.25, "quantity": 20 }
示例 1:计算订单总价
下面的聚合管道使用 $multiply
运算符计算订单的总价:
db.orders.aggregate([
{
$project: {
total: { $multiply: ["$price", "$quantity"] }
}
}
])
该管道使用 $project
运算符将每个文档的 price
和 quantity
字段相乘,并将结果存储在一个新的 total
字段中。以下是该管道的输出结果:
{ "_id": 1, "total": 5 }
{ "_id": 2, "total": 3.75 }
{ "_id": 3, "total": 5 }
示例 2:计算员工的月工资
假设我们有一个存储员工信息的 employees
集合,其中包含以下文档:
{ "_id": 1, "name": "Alice", "hourly_rate": 10, "hours_worked": 160 }
{ "_id": 2, "name": "Bob", "hourly_rate": 15, "hours_worked": 140 }
{ "_id": 3, "name": "Charlie", "hourly_rate": 12, "hours_worked": 180 }
下面的聚合管道使用 $multiply
运算符计算每个员工的月工资:
db.employees.aggregate([
{
$project: {
monthly_salary: { $multiply: ["$hourly_rate", "$hours_worked", 30] }
}
}
])
该管道使用 $project
运算符将每个文档的 hourly_rate
和 hours_worked
字段相乘,并将结果乘以 30(假设每月有 30 天)
结论
在 MongoDB 中, $multiply
是一个聚合运算符,用于计算表达式中的两个数的乘积并返回结果。该运算符可以在聚合管道中使用。