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 运算符将每个文档的 pricequantity 字段相乘,并将结果存储在一个新的 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_ratehours_worked 字段相乘,并将结果乘以 30(假设每月有 30 天)

结论

在 MongoDB 中, $multiply 是一个聚合运算符,用于计算表达式中的两个数的乘积并返回结果。该运算符可以在聚合管道中使用。