Visit complete MongoDB roadmap

← Back to Topics List

$sum

The $sum operator is a powerful and commonly-used operator in MongoDB, which is primarily utilized in conjunction with the $group stage in the aggregation pipeline. As the name suggests, it allows you to calculate the sum of the numeric values in either specified fields or by evaluating expression values for each input document.

Syntax

The basic syntax for using the $sum operator is as follows:

{ $sum: <expression> }

The <expression> can be a field, a number value, or another operator that returns a numeric value.

Examples

Calculate Sum of Field Values

Suppose you have a collection of orders and you want to calculate the total revenue. You can use the $sum operator in combination with the $group stage to achieve this:

db.orders.aggregate([
  {
    $group: {
      _id: null,
      totalRevenue: { $sum: '$price' },
    },
  },
]);

Calculate Sum with Expression

You can also use the $sum operator with an expression to perform more complex calculations. For example, if your orders collection has a quantity field and you want to calculate the total quantity of items sold, you can use the following aggregation:

db.orders.aggregate([
  {
    $group: {
      _id: null,
      totalQuantity: { $sum: { $multiply: ['$price', '$quantity'] } },
    },
  },
]);

In this example, the $multiply operator is used to calculate the total price for each order, and then $sum adds up those values to return the total quantity.

Caveats

It’s important to note that the $sum operator only works with numeric values. In case a non-numeric value is encountered, the $sum operator will return null. To prevent this, you can use the $ifNull or $cond operators to handle non-numeric values in your expression.

Conclusion

The $sum operator is a versatile and essential tool in the aggregation pipeline. By allowing you to calculate the sum of field values or expressions, it helps you efficiently perform aggregate calculations for your MongoDB data.

Community

roadmap.sh is the 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.

Roadmaps Best Practices Guides Videos Store YouTube

roadmap.sh by Kamran Ahmed

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh · FAQs · Terms · Privacy

ThewNewStack

The leading DevOps resource for Kubernetes, cloud-native computing, and the latest in at-scale development, deployment, and management.