MongoDB MapReduce
2015-08-24 17:36
459 查看
使用MapReduce要实现两个函数Map和Reduce函数。Map函数调用emit(key, value),遍历Collection中所有的记录,将key与value传递给Reduce函数进行处理。
MapReduce的基本语法和参数说明:
MapReduce操作后返回的文档包含很多与操作有关的元信息:
一个简单易懂的示例
社区中的MapReduce示例
MapReduce的基本语法和参数说明:
db.runCommand( { mapreduce : 要操作的目标集合, map : 映射函数(生成键值对序列,作为reduce函数参数), reduce : 统计函数, [, query : 文档,发往map函数前先给过渡文档] [, sort : 文档,发往map函数前先给文档排序] [, limit : 整数,发往map函数的文档数量上限] [, out : 字符串,统计结果保存的集合] [, keeptemp: 布尔值,链接关闭时临时结果集合是否保存] [, finalize : 函数,将reduce的结果送给这个函数,做最后的处理] [, scope : 文档,向map、reduce、finalize导入外部变量] [, jsMode : 布尔值,是否减少执行过程中BSON和JS的转换,默认true] //注: false时 BSON-->JS-->map-->BSON-->JS-->reduce-->BSON,可处理非常大的mapreduce true时 BSON-->js-->map-->reduce-->BSON [, verbose : 布尔值,是否产生更加详细的服务器日志,默认true] } );
MapReduce操作后返回的文档包含很多与操作有关的元信息:
> db.runCommand({ "mapreduce": "test", "map": m, "reduce": r, "out":{inline:1} // 1.8版本以上需要指明out选项,该行指定输出结果在控制台 }); { "result": "tmp.mr.mapreduce_12723563222_1", // 存放MapReduce结果的集合名,这是个临时集合,MapReduce的连接关闭后它会被自动删除。 "timeMillis": 12, // 操作花费的时间,单位:毫秒 "counts": { // 用于调试信息 "input": 6, // 发送到map函数的文档个数 "emit": 14, // 在map函数中emit被调用的次数 "reduce": 5, // reduce函数执行次数 "output": 5 // 结果集合中的文档数量 }, "ok": true }
一个简单易懂的示例
社区中的MapReduce示例
相关文章推荐
- MongoDB count distinct group by JavaAPI查询
- mongodb的简单操作
- Windows系统下Mongodb做负载均衡和故障转移]
- Ubuntu 10.04上安装MongoDB
- mongodb主从配置
- Oracle内对MongoDB的INT64数据转换
- MongoDB 聚合
- mongodb多实例
- MongoDB的索引(三)
- linux下安装MongoDB,配置主从服务
- MongoDB的基本使用(二)
- Windows上安装使用MongoDB(一)
- mongoDB与sql语句对照表
- note.js之 Mongodb在Nodejs上的配置及session会话机制的实现
- win7 64位安装mongodb及管理工具mongoVUE1.6.9.0
- MongoDB之Replica Set+Sharding架构
- MongoDB学习六--MongoDB删除数据文档
- MongoDB
- Mongodb集群之副本集
- MongoDB 清除重复数据