导航
导航
文章目录
  1. 基本语法:
  2. 举个栗子:
  3. —参考资料

mapReduce学习笔记

必须要新开一贴,,mapReduce算是在芒果db操作中蛮复杂的。记录一下

使用mapReduce需要实现两个函数map和Reduce函数。map调用emit(key,value)遍历collection中所有的记录,将key与value传递给reduce函数进行处理。

基本语法:


db.runCommand({
     mapreduce:要操作的集合名
     map:映射函数
     reduce:统计函数

     [, query : 文档,发往map函数前先给过渡文档]
     [, sort : 文档,发往map函数前先给文档排序]
     [, limit : 整数,发往map函数的文档数量上限]
     [, out : 字符串,统计结果保存的集合]
     [, keeptemp: 布尔值,链接关闭时临时结果集合是否保存]
     [, finalize : 函数,将reduce的结果送给这个函数,做最后的处理]
     [, scope : 文档,js代码中要用到的变量]
     [, jsMode : 布尔值,是否减少执行过程中BSON和JS的转换,默认true] //注:false时 
        BSON-->JS-->map-->BSON-->JS-->reduce-->BSON,可处理非常大的mapreduce                                    //true时BSON-->js-->map-->reduce-->BSON
     [, verbose : 布尔值,是否产生更加详细的服务器日志,默认true]

});

举个栗子:

有如下集合
1

map函数对age大于25的处理
2

reduce函数
3

然后mapReduce
4

结果集
5

—参考资料

网文