0% found this document useful (0 votes)
50 views14 pages

Mongodb Map Reduce Examples in Mongodb

Uploaded by

ketu89
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views14 pages

Mongodb Map Reduce Examples in Mongodb

Uploaded by

ketu89
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Implement Map reduce

operation with suitable


example using MongoDB.

By Prof. B.A.Khivsara

Note: The material to prepare this presentation has been taken from internet and
are generated only for students reference and not for commercial use.
Map-Reduce
• Map-reduce is a data processing paradigm for condensing
large volumes of data into useful aggregated results. For map-
reduce operations, MongoDB provides the mapReduce
database command.
• Consider the following map-reduce operation:
Map-Reduce
Map-Reduce

In very simple terms, the mapReduce command takes 2


primary inputs, the mapper function and the reducer
function.

A Mapper will start off by reading a collection of data and


building a Map with only the required fields we wish to
process and group them into one array based on the key.

And then this key value pair is fed into a Reducer, which
will process the values.
Map-Reduce Syntax
db.collection.mapReduce(
function() {emit(key, value);},
//Define map function
function(key,values) {return reduceFunction}, {
//Define reduce function
out: collection,
query: document,
sort: document,
limit: number
}
)
Map-Reduce Syntax Explanation
• The above map-reduce function will query the collection, and then map
the output documents to the emit key-value pairs. After this, it is
reduced based on the keys that have multiple values. Here, we have
used the following functions and parameters.

• Map: – It is a JavaScript function. It is used to map a value with a key and


produces a key-value pair.
• Reduce: – It is a JavaScript function. It is used to reduce or group
together all the documents which have the same key.
• Out: – It is used to specify the location of the map-reduce query output.
• Query: – It is used to specify the optional selection criteria for selecting
documents.
• Sort: – It is used to specify the optional sort criteria.
• Limit: – It is used to specify the optional maximum number of
documents which are desired to be returned.
Example1 MapReduce function
• Consider the following document structure that stores book details
author wise. The document stores author_name of the book author and
the status of book.

• > db.author.save({
"book_title" : "MongoDB Tutorial", "author_name" : "aparajita",
"status" : "active", "publish_year": "2016" })
• > db.author.save({
"book_title" : "Software Testing Tutorial", "author_name" : "aparajita",
"status" : "active", "publish_year": "2015" })
• > db.author.save({
"book_title" : "Node.js Tutorial", "author_name" : “Kritika",
"status" : "active", "publish_year": "2016" })
• > db.author.save({
"book_title" : "PHP7 Tutorial", "author_name" : "aparajita",
"status" : “passive", "publish_year": "2016" })
Example1 MapReduce function
db.author.find()

{ "_id" : ObjectId("59333022523476d644344db9"), "book_title" : "MongoDB Tutorial",


"author_name" : "aparajita", "status" : "active", "publish_year" : "2016" }

{ "_id" : ObjectId("59333031523476d644344dba"), "book_title" : "Software Testing


Tutorial", "author_name" : "aparajita", "status" : "active", "publish_year" : "2015" }

{ "_id" : ObjectId("5933303e523476d644344dbb"), "book_title" : "Node.js Tutorial",


"author_name" : "aparajita", "status" : "active", "publish_year" : "2016" }

{ "_id" : ObjectId("5933304b523476d644344dbc"), "book_title" : "PHP7 Tutorial",


"author_name" : "aparajita", "status" : "active", "publish_year" : "2016" }
Example1 MapReduce function
• Now, use the mapReduce function
• To select all the active books,
• Group them together on the basis of author_name and
• Then count the number of books by each author by using the
following code in MongoDB.
Example1 MapReduce function
• Code:
db.author.mapReduce(
function() { emit(this.author_name,1) },
function(key, values) {return Array.sum(values)},
{ query:{status:"active"}, out:"author_total" } ).find()

• Out-Put
{ "_id" : "aparajita", "value" : 2 }
{ "_id" : “Kritika", "value" : 1 }

Code:
db.author.mapReduce(
function() { emit(this.author_name,1); },
function(key, values) {return Array.sum(values)}, {
query: { status : "active" },
out: "author_total” })
Example2 MapReduce function
• Consider the following document structure of Students

• > db.stud.insert({ Name: ‘Amit’, Marks:80 })


• >db.stud.insert({ Name: ‘Amit’, Marks:90 })
• >db.stud.insert({ Name: ‘Shreya’, Marks:40 })
• >db.stud.insert({ Name: ‘Neha’, Marks:80 })
• >db.stud.insert({ Name: ‘Neha’, Marks:35})
Example2 MapReduce function
• > db.stud.mapReduce(
function(){ emit(this.Name,1)},
function(key, values) {return Array.sum(values)},
{out: “Name_Total“ })

• > db.stud.mapReduce(
function(){ emit(this.Name,1)},
function(key, values) {return Array.sum(values)},
{out: “Name_Total“ }).find()

• > db.stud.mapReduce(
function() { emit(this.Name,this.Marks) },
function(key, values) {return Array.sum(values)},
{out: “Total_Marks“ }).find()
Example2 MapReduce function
• > db.stud.mapReduce(
... function(){ emit(this.Name,this.Marks)},
... function(key, values) {return Array.sum(values)},
... {out: 'Name_Total'}).find().sort({value:1})

• db.stud.mapReduce(
... function(){ emit(this.Name,this.Marks)},
... function(key, values) {return Array.sum(values)},
... {out: 'Name_Total'}).find().limit(1)

• db.stud.mapReduce(
function(){ emit(this.Name,1)},
function(key, values) {return Array.sum(values)},
{query:{Marks:{$gt:70}},out: 'Name_Total'}).find()
References
• https://docs.mongodb.com/manual/core/map-reduce/
• https://www.eduonix.com/blog/web-programming-
tutorials/learn-mapreduce-command-mongodb/
• https://www.tutorialspoint.com/mongodb/mongodb_map_re
duce.htm

You might also like