Node.Js中使用MongoDB中的MapReduce
2013-04-27 19:35
477 查看
官网示例参考:http://mongodb.github.com/node-mongodb-native/api-generated/collection.html?highlight=mapreduce#mapReduce
MapReduce是一个编程模型,封装了并行计算、容错、数据分布、负载均衡等细节问题。
MapReduce的功能有点类似于mysql中的group by 。
MapReduce中主要有两个函数map和reduce进行统计,map为reduce提供输入,输入的是key-value集合。
下面我们在数据库中插入如下数据:
nodejs中的代码如图:
得到的结果如下图:
从结果中可以看出对性别为man的,年龄不同的分别进行了统计。
参数说明:
mapreduce:要操作的目标集合。
map: 生成键值对序列,作为 reduce函数参数。
reduce:统计函数。
query: 一个筛选条件,只有满足条件的行才会加入mapreduce集合,而这个筛选过程是先于整个mapreduce流程而执行的。
sort: 和query结合的sort排序参数(需要排序的参数必须先建立索引
limit:限制目标记录数量。
out: 结果输出的collection的名字 (不指定则使用临时集合,在客户端断开后自动删除。replace、merge、reduce、inline)。参考:http://www.mongodb.org/display/DOCS/MapReduce
keeptemp: true或false,表明结果输出到的collection是否是临时的,如果为true,则会在客户端连接中断后自动删除,如果你用的是MongoDB的mongo客户端连接,那必须exit后才会删除。如果是脚本执行,脚本退出或调用close会自动删除结果collection。
finalize: 和map,reduce一样是一个函数,它可以在reduce得出一个结果后再对key和value进行一次计算并返回一个最终结果。
scope: 设置参数值,在这里设置的值在map,reduce,finalize函数中可见。
verbose:在执行过程中的调试信息。
如果verbose:true的时候callback返回中多一个stats字段:
输出结果如下:
参数说明:
result:储存结果的collection的名字
input:满足条件的数据行数
emit:emit调用次数,也就是所有集合中的数据总量
ouput:返回结果条数
timeMillis:执行时间,毫秒为单位
ok:是否成功,成功为1
err:如果失败,这里可以有失败原因
上面的replace执行之后会发现数据库中会多出一个输出数据库,如图:
MapReduce是一个编程模型,封装了并行计算、容错、数据分布、负载均衡等细节问题。
MapReduce的功能有点类似于mysql中的group by 。
MapReduce中主要有两个函数map和reduce进行统计,map为reduce提供输入,输入的是key-value集合。
下面我们在数据库中插入如下数据:
nodejs中的代码如图:
得到的结果如下图:
从结果中可以看出对性别为man的,年龄不同的分别进行了统计。
参数说明:
mapreduce:要操作的目标集合。
map: 生成键值对序列,作为 reduce函数参数。
reduce:统计函数。
query: 一个筛选条件,只有满足条件的行才会加入mapreduce集合,而这个筛选过程是先于整个mapreduce流程而执行的。
sort: 和query结合的sort排序参数(需要排序的参数必须先建立索引
limit:限制目标记录数量。
out: 结果输出的collection的名字 (不指定则使用临时集合,在客户端断开后自动删除。replace、merge、reduce、inline)。参考:http://www.mongodb.org/display/DOCS/MapReduce
keeptemp: true或false,表明结果输出到的collection是否是临时的,如果为true,则会在客户端连接中断后自动删除,如果你用的是MongoDB的mongo客户端连接,那必须exit后才会删除。如果是脚本执行,脚本退出或调用close会自动删除结果collection。
finalize: 和map,reduce一样是一个函数,它可以在reduce得出一个结果后再对key和value进行一次计算并返回一个最终结果。
scope: 设置参数值,在这里设置的值在map,reduce,finalize函数中可见。
verbose:在执行过程中的调试信息。
如果verbose:true的时候callback返回中多一个stats字段:
输出结果如下:
参数说明:
result:储存结果的collection的名字
input:满足条件的数据行数
emit:emit调用次数,也就是所有集合中的数据总量
ouput:返回结果条数
timeMillis:执行时间,毫秒为单位
ok:是否成功,成功为1
err:如果失败,这里可以有失败原因
上面的replace执行之后会发现数据库中会多出一个输出数据库,如图:
相关文章推荐
- MUI + Nodejs + Mongodb 图片上传的使用总结 (我写的是头像上传 一样的都是)
- node.js学习笔记(4)_极客学院_MongoDB的使用
- 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(一)
- Node.js Mongodb非关系型数据库,安装 配置 使用
- nodejs+mongodb系列教程之(4/5)--mongoose使用
- Node.js中使用mongoskin操作mongoDB实例
- 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(二)
- 详解Wondows下Node.js使用MongoDB的环境配置
- node.js + MongoDB + AngularJS - 3 开始使用Node.js
- node.js使用mongodb存储数据-客户端使用
- node.js开发之express4.0使用mongoose连接mongodb
- Node.js的Mongodb使用实例
- node.js使用mongodb进行删除操作和修改操作
- Node.js的MongoDB驱动Mongoose基本使用教程
- 使用nodejs+mongodb+百度开放云开发微信或web应用
- 使用nodejs mongodb连接mongodb的shard分布服务
- 从零开始学习Node.js例子八 使用SQLite3和MongoDB
- node.js 中使用mongodb
- 详解Wondows下Node.js使用MongoDB的环境配置
- 使用 Angular.js, Node.js 和 MongoDB开发简单案例