var jobMapFun =function(){emit(this.job,this.name);}
var jobReduceFun =function(key,values){return{"job":key,"name":values};// 输出结果}
db.runCommand({"mapreduce":"emps",// 操作的是哪张表"map":jobMapFun,//map函数名"reduce":jobReduceFun,//reduce函数名"out":"demo01"// 输出到哪张表中})
db.demo01.find()
2. 统计出各性别的人数、平均工资、最低工资、雇员姓名
var sexMapFun =function(){//定义好了分组的条件,以及每个集合要取出的内容emit(this.sex,{"ccount":1,"csal":this.salary,"cmax":this.salary,"cmin":this.salary,"cname":this.name});}
var sexReduceFun =function(key,values){
var total =0;
var sum =0;
var max = values[0].cmax;
var min = values[0].cmin;
var names =newArray();for(var x in values){//表示循环取出里面的数据
total += values[x].ccount;
sum += values[x].csal;if(max < values[x].cmax)
max = values[x].cmax;if(min > values[x].cmin)
min = values[x].cmin;
names[x]= values[x].cname;}
var avg =(sum / total).toFixed(2);//保留2位小数return{"count":total,"avg":avg,"sum":sum,"max":max,"min":min,"names":names}}
db.runCommand({"mapreduce":"emps","map":sexMapFun,"reduce":sexReduceFun,"out":"demo02"})