MongoDB中的Map/reduce 进行一些复合查询 , 因为mongodb不支持GROUP BY 查询, MapReduce 又类似于SQL的 GROUP BY ,所以可以认为 MapReduce 就是 mongodb 版的GROUP BY
命令如下:
db.runCommand(
{ mapreduce :
,
map :
,
reduce :
[, query : ]
[, sort : ]
[, limit : ]
[, out : ]
[, keeptemp:
]
[, finalize : ]
[, scope : ]
[, verbose : true]
}
);
mapreduce:指定要进行mapreduce处理的collection
map:map函数
reduce:reduce函数
query:一个筛选条件,只有满足条件的行才会加入mapreduce集合,而这个筛选过程是先于整个mapreduce流程而执行的
sort:和query结合的sort排序参数,这是唯一可以优化分组机制的地方
limit:同上
out:结果输出的collection的名字,不指定会默认创建一个随机名字的collection
keytemp:true或false,表明结果输出到的collection是否是临时的,如果为true,则会在客户端连