Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Calculate average age of the students
- var mapFunction = function(){
- emit("avgAge", this.age);
- };
- var reduceFunction = function(age, values){
- return Array.sum(values) / values.length ;
- };
- db.student.mapReduce(mapFunction, reduceFunction, {out : {inline : 1}});
- // using aggregate
- db.student.aggregate([{$group: {_id: null, avgAge: {$avg: "$age"}}}])
- // Correct answer
- var mapFunction = function(){
- emit("avgAge", {sum: this.age, count: 1});
- };
- var reduceFunction = function(age, values){
- var sumOfAge = Array.sum(values.map(function(val){
- return val.sum;
- }));
- var totalCount = Array.sum(values.map(function(val){
- return val.count;
- }));
- return {sum: sumOfAge, count: totalCount};
- };
- var finalizeFunction = function(age, values){
- return values.sum / values.count;
- };
- db.student.mapReduce(mapFunction, reduceFunction, {out : {inline : 1}, finalize : finalizeFunction});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement