MongoDB Map Reduce

Learn via video courses
Topics Covered

Overview

Condensing enormous amounts of data into useable aggregated output is the goal of the data processing paradigm known as "mapreduce." MongoDB does mapreduce operations via the MapReduce command. For processing huge data sets, MongoDB MapReduce is typically utilized. Data aggregation, data filtering, data transformation, and data analysis are just a few of the many tasks MongoDB MapReduce is capable of. It is an effective tool for handling massive datasets and carrying out complex data operations.

Transform Your Career

Choose from our industry-leading programs designed for career success

NSDC Certified

Modern Software and AI Engineering Program

Master full-stack development with AI integration

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Modern Data Science and ML with specialisation in AI

Advanced data science techniques with AI specialization

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Advanced AIML with Specialisation in Agentic AI

Deep dive into AIML with focus on Agentic systems

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

DevOps, Cloud & AI Platform Engineering

Build and manage AI-powered cloud infrastructure

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

AI Engineering Advanced Certification by IIT-Roorkee

Premier AI engineering certification from IIT-Roorkee

3 MonthsDuration
AI-LedCurriculum
Career SupportSupport
Program highlights
Go to Program

What is MongoDB MapReduce?

The mapReduce() method from MongoDB is used to carry out the MapReduce operations. Map and reduce are the two primary functions of this function. The map function is used to group all of the data based on their key-value pairs, and the reduce function is used to perform actions on the grouped data. Typically, only huge data sets were used by this mapReduce() function. Similar to groupBy in SQL, aggregation procedures like max and avg may be performed using MongoDB MapReduce on data using a key. It operates on data in parallel and independently.

MapReduce and JavaScript Function

Custom JavaScript functions are used in MapReduce operations in MongoDB to associate or map values to keys. When more than one value is mapped to a key, the operation reduces all of those values into a single object. A document is inputted into the map function, which outputs key-value pairs. The reduction function produces a reduced result after receiving a key and a set of values as input. Every document in the collection is subjected to the map and reduce functions, and the output is then aggregated to get the result.

Free Courses by top Scaler instructors
Python Course for Beginners With Certification: Mastering the Essentials
Java Course - Mastering the Fundamentals
DBMS Course - Master the Fundamentals and Advanced Concepts
JavaScript Course With Certification: Unlocking the Power of JavaScript
C++ Course: Learn the Essentials
Python and SQL for Data Science Course
Python Course for Beginners With Certification: Mastering the Essentials
Java Course - Mastering the Fundamentals
DBMS Course - Master the Fundamentals and Advanced Concepts
JavaScript Course With Certification: Unlocking the Power of JavaScript
C++ Course: Learn the Essentials
Python and SQL for Data Science Course

MapReduce Results

The MapReduce operation in MongoDB allows users to return the results inline or write the results to a collection. If you save the results of a mapreduce operation to a collection, you can use that collection as an input for additional mapreduce operations that replace, combine, or decrease fresh results with older ones. The result documents from a MongoDB mapreduce operation must not exceed the BSON Document Size limit, which is presently 16 megabytes when returning the results inline.

Scaler Placement Report and Statistics

₹23L
AVG CTC
SCALER PLACEMENT PROOF

Scaler learners achieved 2.5x salary growth with average post-Scaler CTC reaching ₹23L.

11,000+placements
650+companies
Verified data
Hiring Partners:
GoogleGoogleAmazonAmazonMicrosoftMicrosoftFlipkartFlipkartAdobeAdobe1200+ more

db.collection.mapReduce()

A MongoDB collection can be subjected to MapReduce operations using the mapReduce() method.

Syntax

The syntax for db.collection.mapReduce() is as follows:

The following parameters are required:

  1. map: A JavaScript function that "maps" a value to a key and outputs the key and value pair. Type: Javascript or String
  2. reduce: A JavaScript method that "reduces" each value connected to a given key to a single object. Type: Javascript or String
  3. options: Document specifying additional parameters to db.collection.mapReduce(). Type: document

Description of additional arguments that db.collection.mapReduce() can accept.

  1. out: specifies where the MongoDB mapreduce operation's result will be stored. Type: string or document
  2. query: Determines the documents to be used as input for the map function by specifying the selection criteria using query operators. Type: document
  3. sort: Input documents are sorted. Type: document
  4. limit: Sets a maximum amount of documents that can be used as input for the map function. Type: number
  5. finalize: Optional. a JavaScript method that alters the output produced by the reduce function. Type: Javascript or String
  6. scope: Specifies global variables that can be accessed by the map, reduce, and finalize functions. Type: document
  7. jsMode: Indicates whether intermediate data should be converted to BSON format between map and reduce operations. Type: boolean
  8. verbose: Specifies if the time details should be included in the result information. Type: boolean
  9. collation: Optional, the collation that will be used for the operation is specified. Type: document
  10. bypassDocumentValidation: Optional, it allows mapReduce to skip document validation while performing the operation. Type: boolean

Turn Learning into Career Growth

1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary
1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary

Output

A MapReduce operation's output can either be returned inline or written to a new collection. The output options for the MapReduce process are specified by the out parameter. The output is returned inline if the out option is not supplied.

Examples

Example 1: MongoDB mapreduce example for Aggregating Data

Input Document:

MongoDB MapReduce operation to calculate the total score:

Output:

Explanation:

  1. The map function emits a key-value pair for each document in the scores collection. The key is set to a constant string "total" and the value is set to the score field of the document.
  2. The reduce function aggregates the values for each key by summing them up.
  3. The out option specifies the output collection for the MongoDB MapReduce result. In this case, we use the { inline: 1 } option to return the result as an array of documents rather than storing it in a collection.
  4. The result is a single document with a key _id of "total" and a value of 245, which is the sum of the score fields in the input documents.

Example 2: MongoDB mapreduce example for Filtering Data

Input Document:

MapReduce operation to filter data:

Output:

Explanation:

  1. The map function filters the documents based on the conditions specified in the if statement. In this case, we only emit the document if the gender field is "male" and the score field is greater than or equal to 75.
  2. The reduce function simply returns the array of values for each key (in this case, the _id field).
  3. The out option specifies the output collection for the MapReduce result. In this case, we use the { inline: 1 } option to return the result as an array of documents rather than storing it in a collection.
  4. The result is an array of two documents that meet the filtering conditions in the map function.

Example 3: MongoDB mapreduce example for Transforming Data

Input Document:

Output:

MapReduce operation to transform data:

Explanation:

  1. The map function adds a prefix ("Mr." or "Ms.") to the name field based on the gender field. It then emits a new document with the transformed name field and the original values for the gender field.
  2. The reduce function is not used in this example since there is only one value for each key.
  3. The out option specifies the output collection for the MapReduce result. In this case, we use the { inline: 1 } option to return the result as an array of documents rather than storing it in a collection.
  4. The result is an array of three documents, which have the transformed name field and the original values for the gender field.

FAQs

Question 1: Can simultaneous MapReduce operations be performed in MongoDB?

Answer: Yes, by dividing the input data into multiple chunks and processing each chunk in parallel, MongoDB supports the parallel processing of MapReduce operations.

Question 2: Can MongoDB be utilized for real-time data processing using MapReduce operations?

Answer: No, MongoDB's MapReduce processes are not appropriate for real-time data processing. MongoDB MapReduce processes are not optimized for low-latency, real-time processing; rather, they are designed for batch processing of massive volumes of data.

Question 3: What are the primary advantages of MapReduce in MongoDB?

Answer: The ability to process enormous datasets quickly and carry out complicated data operations that are challenging to accomplish using conventional MongoDB queries are the key advantages of using MapReduce in MongoDB.

Conclusion

The following are some important takeaways from this article about MongoDB MapReduce:

  • A data processing technique called MongoDB MapReduce is utilized to carry out complex data operations on huge data sets in MongoDB.
  • A new or existing collection in MongoDB can be used to store the results of a MapReduce operation.
  • Large dataset processing can be facilitated using MongoDB MapReduce, but it can also be hard and resource-intensive to use wellBeforeto using MongoDB MapReduce operations on production data, it is crucial to thoroughly plan and test them.