db.runCommand({ mapreduce: "demo",
map : function Map() {
var result={short:0,long:0};
if(this.short){
result.short=this.short;
}
if(this.long){
result.long=this.long;
}
emit(
this.name,result
);
},
reduce : function Reduce(key, values) {
var result={long:0,short:0};
for(var i=0; i<values.length; i++){
var long=parseInt(values[i].long);
var short=parseInt(values[i].short);
if(!isNaN(long)){
result.long+=long;
}
if(!isNaN(short)){
result.short+=short;
}
}
return result;
},
finalize : function Finalize(key, reduced) {
/*
// Make final updates or calculations
reduced.avgAge = reduced.age / reduced.count;
*/
return reduced;
},
out : { replace: "tmp" , db: "db1" }
});
map : function Map() {
var result={short:0,long:0};
if(this.short){
result.short=this.short;
}
if(this.long){
result.long=this.long;
}
emit(
this.name,result
);
},
reduce : function Reduce(key, values) {
var result={long:0,short:0};
for(var i=0; i<values.length; i++){
var long=parseInt(values[i].long);
var short=parseInt(values[i].short);
if(!isNaN(long)){
result.long+=long;
}
if(!isNaN(short)){
result.short+=short;
}
}
return result;
},
finalize : function Finalize(key, reduced) {
/*
// Make final updates or calculations
reduced.avgAge = reduced.age / reduced.count;
*/
return reduced;
},
out : { replace: "tmp" , db: "db1" }
});