MongoDB 学习笔记五 MapReduce
2015-10-30 10:18
633 查看
runCommand语法:
db.runCommand({ mapreduce:<collection>, map:<mapfunction>, reduce:<reducefunction>, [,query:<query filter object>] [,sort:<sorts the input objects using this key.Useful for optimization,like sorting by the emit key for fewer reduces>] [,limit:<number of objects to return from collection>] [,out:<see output options below>] [,keeptemp:<true|false>] [,finalize:<finalizefunction>] [,scope:<object where fields go into javascript global scope>] [,verbose:true] });
也可以这样写
db.collectionname.mapReduce(mapfunction,reducefunction,{mout:outcollection});
说明:
Mapreduce:要操作的目标集合Map:映射函数(生成键值对序列,作为reduce函数参数)
Reduce:统计函数
Query:目标记录过滤
Sort:目标记录排序
Limit:限制目标记录数量
Out:统计结果存放集合(不指定使用临时集合,在客户端断开后自动删除)
Keeptemp:是否保留临时集合
Finalize:最终处理函数(对reduce返回结果进行最终整理后存入结果集合)
Scope:向map、reduce、finalize导入外部变量
Verbose:显示详细的时间统计信息。
处理顺序
查询指定Collection调用 map 对结果集进行mapper处理
执行finalize方法处理
最终结果集输出到临时Collection中
断开连接,临时Collection删除或保留。
map 文档输入
function(){emit(分组条件key,需要统计的对象value);} 分组条件key会对应最终结果集里的_id主键。
reduce 统计函数
典型的reduce函数:function(key,values){ //key对应map里的key,values是同一个key对应的map里 value的数组。 //可以这样遍历values values.forEach(function(){}); var ret={age:key,names:values}; return ret; }
finalize 最终处理
function(key,rval){ if(key==0){ rval.msg="a new life,baby!"; } return rval }
相关文章推荐
- MongoDB之数据分布式存储
- linux mongodb3安装
- linux mongodb 安装
- Mongodb 和 Solr 实时同步
- Linux下PHP安装配置MongoDB数据库连接扩展
- MongoDB项目中常用方法
- Ubuntu mongodb 安装和配置
- MongoDB介绍及下载与安装
- 最简单实用的MongoDB安装教程:在CentOS中使用 yum 安装MongoDB及服务器端配置详解
- mongodb 常用命令
- windows下log4j日志存储到mongodb下
- Spring集成MongoDB
- 在Ubuntu中安装mongodb
- Linux下快速安装MongoDB
- MongoDB Ubuntu安装 APP 支付宝微信支付
- 使用mongoosejs链接Mongodb
- mongodb 3.0.x 添加用户名和密码设置权限
- mongodb服务安装,搭建副本集及原理概述
- MongoDB当前操作db.currentOp()示例
- MongoDB当前操作db.currentOp()示例