Front-end Tutorials

Front-end Tutorials

HTMLCSSSassJavaScriptReactJS
CMS Tutorials

CMS Tutorials

WordPress
Tutorials expand

MongoDB Aggregation

MongoDB $round Operator

Updated on Apr 08, 2024
By Mari Selvan
👁️ 13 - Views
⏳ 4 mins
💬 0
MongoDB $round Operator

Photo Credit to CodeToFun

🙋 Introduction

Within MongoDB's aggregation framework, the $round operator offers a convenient way to round numerical values to a specified number of decimal places. This operator is particularly useful in scenarios where precision is required or when presenting data in a more concise format.

Let's delve into how the $round operator can be effectively utilized within MongoDB's aggregation pipelines.

💡 Syntax

The syntax for the $round method is straightforward:

syntax.js
Copied
Copy To Clipboard
{ $round: { <expression>, <decimalPlaces> } }
  • $round: This operator signifies that the subsequent operation will round a numerical value.
  • <expression>: This represents the numerical expression or field reference to be rounded.
  • <decimalPlaces>: This specifies the number of decimal places to which the value should be rounded.

📝 Example

⌨️ Input

Consider a collection named temperatures containing documents with fields location and temperature representing temperature readings. Here are sample documents from the temperatures collection:

Output
Copied
Copy To Clipboard
[
  { "_id": ObjectId("609c26812e9274a86871bc6a"), "location": "New York", "temperature": 21.578 },
  { "_id": ObjectId("609c26812e9274a86871bc6b"), "location": "Los Angeles", "temperature": 18.942 },
  { "_id": ObjectId("609c26812e9274a86871bc6c"), "location": "Chicago", "temperature": 16.723 }
]

🔄 Aggregation

Suppose we want to round the temperature values to two decimal places. Here's how you can achieve this using the $round operator:

example.js
Copied
Copy To Clipboard
db.temperatures.aggregate([
  {
    $project: {
      location: 1,
      roundedTemperature: { $round: ["$temperature", 2] }
    }
  }
])

🧩 Explanation

  • $project: This stage reshapes documents in the aggregation pipeline and includes or excludes fields as specified.
  • $round: Rounds the temperature field to two decimal places.

When discussing how the above aggregation works:

  • In the first document, the temperature value of 21.578 is rounded to 21.58.
  • In the second document, the temperature value of 18.942 is rounded to 18.94.
  • In the third document, the temperature value of 16.723 is rounded to 16.72.

💻 Output

Now, let's take a look at the output generated by the aggregation pipeline:

Output
Copied
Copy To Clipboard
{ "_id": ObjectId("609c26812e9274a86871bc6a"), "location": "New York", "roundedTemperature": 21.58 }
{ "_id": ObjectId("609c26812e9274a86871bc6b"), "location": "Los Angeles", "roundedTemperature": 18.94 }
{ "_id": ObjectId("609c26812e9274a86871bc6c"), "location": "Chicago", "roundedTemperature": 16.72 }

📚 Use Cases

  1. Data Presentation:

    The $round operator is valuable for presenting numerical data with a specified level of precision, ensuring clarity and readability.

  2. Financial Calculations:

    When dealing with financial data, rounding values to a certain number of decimal places is often necessary to maintain accuracy.

  3. Statistical Analysis:

    In statistical computations, rounding values can help in simplifying results without sacrificing meaningfulness.

🎉 Conclusion

The $round operator in MongoDB's aggregation framework provides a straightforward solution for rounding numerical values to a specified number of decimal places. Whether you're presenting data, performing financial calculations, or conducting statistical analysis, mastering the usage of $round empowers you to manipulate numerical data effectively within MongoDB's aggregation pipelines.

With its intuitive syntax and practical applications, the $round operator proves to be a valuable asset for handling numerical data within MongoDB. Incorporate it into your aggregation pipelines to streamline data processing and enhance the presentation of your analysis results.

👨‍💻 Join our Community:

To get interesting news and instant updates on Front-End, Back-End, CMS and other Frameworks. Please Join the Telegram Channel:

Author

author
👋 Hey, I'm Mari Selvan

For over eight years, I worked as a full-stack web developer. Now, I have chosen my profession as a full-time blogger at codetofun.com.

Buy me a coffee to make codetofun.com free for everyone.

Buy me a Coffee

Share Your Findings to All

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
We make use of cookies to improve our user experience. By using this website, you agree with our Cookies Policy
AgreeCookie Policy