MongoDB mapReduce操作
来源:互联网 发布:三维人像数据门 编辑:程序博客网 时间:2024/05/17 07:04
mapReduce函数原型
db.collection.mapReduce( <map>, <reduce>, { out: <collection>, query: <document>, sort: <document>, limit: <number>, finalize: <function>, scope: <document>, jsMode: <boolean>, verbose: <boolean> } )
mapReduce函数关键是map和reduce函数的编写!! map
函数一般比较简单,仅仅包含emit(key,value)
函数
key、value都要是json格式!!
如果key或value仅包含一个字段,可以直接返回。
{_id:ObjectId("XXXXXXXXXXXXXXXXXXXXXX"),name:"Jack",age:28,sex:"male",address:"XXXX",income:10000}
仅仅返回单个字段:
emit(sex,age)
返回多个字段:
emit({"sex":this.sex,"address":this.address},{"age":this.age,"income":this.income,"count":1})
value中字段可以自己任意定义,count:1
用于统计数目
function reduce(key,values)
reduce函数默认有两个传入参数,
- key即map阶段的key
- values是map阶段emit对具有相同key的记录进行合并后的结果,是数组
reduce函数只负责处理values内容,不对key进行处理,返回的处理结果也必须符合json格式,不含key内容
function reduce(key, values) { var reduced = { age : 0, income : 0, count : 0 }; values.forEach(function (val) { reduced.age += val.age; reduced.income += val.income; reduced.count += val.count; }); return reduced;}
finalize函数在Reduce处理结束,返回结果之前再做一次处理,optional字段
function Finalize(key, reduced) { reduced.avgAge = reduced.age / reduced.count; reduced.avgIncome = reduced.income / reduced.count; return reduced;}
其他字段不详细解释,可自行查看官网相关文档
本文实现的mapReduce函数是根据性别和地址,统计平均年龄和收入
0 0
- java操作mongodb mapreduce
- MongoDB mapReduce操作
- Mongodb MapReduce
- MongoDB MapReduce
- Mongodb(mapreduce)
- mongodb mapReduce
- mongodb mapreduce
- MongoDB MapReduce
- MongoDB MapReduce
- mongoDB mapReduce
- MongoDB 数据库操作(五)—MapReduce(groupBy)
- 使用MongoVUE对MongoDB 进行MapReduce操作步骤
- MongoDB中使用MapReduce来进行聚合操作
- Mongodb Mapreduce 初窥
- MongoDB mapReduce 实例
- Mongodb Mapreduce 初窥
- MongoDB mapReduce使用
- Mongodb Mapreduce 初窥
- Xcode 中Provisioning Profiles列表清理方法
- 《编程珠玑》2.3 将一个n元一维向量左旋转i个位置
- android 自定义按钮,点击变色,圆角
- 【Unity3D游戏开发】UnityEditor.UI.dll timestamps but is not known in guidmapper...(十九)
- plsql远程访问数据库 解决ora-12541:TNS:无监听程序
- MongoDB mapReduce操作
- Android MD5加签源代码算法
- 图像特效小结
- ARM Linux BenchMark
- Linux 技巧:让进程在后台可靠运行的几种方法
- http://ryewhisky.itpub.net/post/28330/298289
- jstat
- vector和string优先于动态数组的分配
- hihocoder1241 : Best Route in a Grid