What do developers use the aggregation framework for?
The aggregation framework is versatile and used for many different data processing and manipulation tasks. Some typical use cases include the following:
- Generating business reports, which include roll-ups, sums, and averages
- Performing real-time analytics to generate insight and actions for end users
- Presenting real-time business dashboards with an up-to-date summary status
- Performing data masking to securely obfuscate and redact sensitive data ready to expose to consumers via views
- Joining data together from different collections on the server side rather than in the client application for improved performance
- Conducting data science activities such as data discovery and data wrangling
- Performing mass data analysis at scale (i.e., big data) as a faster and more intuitive alternative to technologies such as Hadoop
- Executing real-time queries where deeper server-side data post-processing is required than what is available via default MongoDB Query Language
- Navigating a graph of relationships between records, looking for patterns
- Performing the transform part of an extract, load, transform (ELT) workload to transform data landed in MongoDB into a more appropriate shape for consuming applications to use
- Enabling data engineers to report on the quality of data in the database and perform data-cleansing activities
- Updating a materialized view with the results of the most recent source data changes so that real-time applications don't have to wait for long-running analytics jobs to complete
- Performing full-text search and fuzzy search on data using MongoDB Atlas Search, see https://www.mongodb.com/atlas/search
- Exposing MongoDB data to analytics tools that don't natively integrate with MongoDB via SQL, ODBC, or JDBC (using MongoDB BI Connector, see https://www.mongodb.com/docs/bi-connector/current/, or Atlas SQL, https://www.mongodb.com/atlas/sql)
- Supporting machine learning frameworks for efficient data analysis (e.g., via MongoDB Spark Connector, see https://docs.mongodb.com/spark-connector)