Introduction to MongoDB $multiply Operator
$multiply is an aggregation operator in MongoDB used to calculate the product of two numbers in an expression and return the result. It can be used in the aggregation pipeline.
Syntax
The syntax of the $multiply operator is as follows:
{ $multiply: [ <expression1>, <expression2>, ... ] }
Here, <expression1> and <expression2> are the two expressions to be multiplied. Any number of expressions can be used for multiplication.
Use Cases
The $multiply operator is typically used for numeric calculations in the aggregation pipeline, such as calculating the total price of orders, calculating employee salaries, etc. It can also be used in conjunction with other aggregation operators such as $group and $project.
Examples
Sample Data
Assuming we have a orders collection storing sales orders with the following documents:
{ "_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 }
Example 1: Calculate the Total Price of Orders
The following aggregation pipeline uses the $multiply operator to calculate the total price of orders:
db.orders.aggregate([
{
$project: {
total: { $multiply: ["$price", "$quantity"] }
}
}
])
The pipeline uses the $project operator to multiply the price and quantity fields of each document and store the result in a new total field. Here’s the output of the pipeline:
{ "_id": 1, "total": 5 }
{ "_id": 2, "total": 3.75 }
{ "_id": 3, "total": 5 }Example 2: Calculate Employee Monthly Salary
Assuming we have an employees collection storing employee information with the following documents:
{ "_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 }
The following aggregation pipeline uses the $multiply operator to calculate the monthly salary of each employee:
db.employees.aggregate([
{
$project: {
monthly_salary: { $multiply: ["$hourly_rate", "$hours_worked", 30] }
}
}
])
The pipeline uses the $project operator to multiply the hourly_rate and hours_worked fields of each document and multiply the result by 30 (assuming there are 30 days in a month).
Conclusion
In MongoDB, $multiply is an aggregation operator used to calculate the product of two numbers in an expression and return the result. It can be used in the aggregation pipeline.