目前发现mapreduce的用法有两种:
一:计数以及实现聚合函数统计数据
二:对数据进行分组简化或者构造自己想要的格式
三:根据条件进行数据筛选
现在普遍的用法是第一种,对于第二种用法我们会分析一些格式怎么构造。
环境:
虚拟机:Oracle VM virtualbox 4.0.6
Linux:CentOS 5.6
mongovue(推荐使用,一个可视化的mongodb客户端,下载地址:http://www.mongovue.com/)
效果图
PS:如果主机和虚拟机中的linux可以相互ping通,mongovue却连接不成功,拒绝访问的话很可能是Linux中防火墙的设置问题。可以把防火墙暂时关了或者把mongodb的端口开启,方法如下:
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
1.db.runCommand(
2.{
3. mapreduce : <collection>,
4. map : <mapfunction>,
5. reduce : <reducefunction>
6. [, query : <query filter object>]
7. [, sort : <sort the query. useful optimization>] for
8. [, limit : <number of objects to from collection>] return
9. [, out : <output-collection name>]
10. [, keeptemp: < | >] true false
11. [, finalize : <finalizefunction>]
12. [, scope : <object where fields go into javascript global scope >]
13. [, verbose : ] true
14.});
1.db.runCommand(
2.{
3. mapreduce : <collection>,
4. map : <mapfunction>,
5. reduce : <reducefunction>
6. [, query : <query filter object>]
7. [, sort : <sort the query. useful optimization>] for
8. [, limit : <number of objects to from collection>] return
9. [, out : <output-collection name>]
10. [, keeptemp: < | >] true false
11. [, finalize : <finalizefunction>]
12. [, scope : <object where fields go into javascript global scope >]
13. [, verbose : ] true
14.}); |