分享

mapreduce 求教

cshiqin 发表于 2013-10-17 21:37:18 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 4427
db.class.insert({class:1,student:1,subject :1,score:90 });   
db.class.insert({class:1,student:1,subject :2,score:90 });
db.class.insert({class:1,student:1,subject :3,score:90 });
db.class.insert({class:1,student:2,subject :1,score:90 });   
db.class.insert({class:1,student:2,subject :2,score:90 });
db.class.insert({class:1,student:2,subject :3,score:90 });
db.class.insert({class:2,student:1,subject :1,score:90 });   
db.class.insert({class:2,student:1,subject :2,score:90 });
db.class.insert({class:2,student:1,subject :3,score:90 });
db.class.insert({class:2,student:2,subject :1,score:90 });   
db.class.insert({class:2,student:2,subject :2,score:90 });
db.class.insert({class:2,student:2,subject :3,score:90 });
如何用mapreduce写每个班的每个科目的总分?
就是相当于sql中的
select class,subject,sum(score) from class group by class,subject;
mapreduce是不是只能求每个班的总分,或每个科目的总分呀?
就是
              
               
                    MapReduce
                     mongodb
               

已有(6)人评论

跳转到指定楼层
cshiqin 发表于 2013-10-17 21:37:55

            没人回复,自己顶一下.
        
回复

使用道具 举报

cshiqin 发表于 2013-10-17 21:38:55

            没人回复,自己顶一下.
        
回复

使用道具 举报

fengyun4hao 发表于 2013-10-17 21:39:33

            GroupBy groupby=new GroupBy("function(doc){
                       return{'class':doc.class,true};
}")
groupby.initialDocument("{total:0}");
groupby.reducefunction("function(doc,prev){
                            prev.total++;
}")
在java程序中写的,用到了mongo的jar包
        
回复

使用道具 举报

cshiqin 发表于 2013-10-17 21:40:26

            谢谢,你这是group by class
我要的是group by class,subject
        
回复

使用道具 举报

cshiqin 发表于 2013-10-17 21:41:22

            引用 3 楼 fengyun4hao 的回复:GroupBy groupby=new GroupBy("function(doc){
                       return{'class':doc.class,true};
}")
groupby.initialDocument("{total:0}");
groupby.reducefunction("function(doc,p……

谢谢,你这是group by class
我要的是group by class,subject
        
回复

使用道具 举报

Net_Java_dram 发表于 2013-10-17 21:42:12

            可以统计每个班的人数,每个班的每个人的总成绩 你想要的统计 都可以的
不用mapreduce 用aggregate 里面有 $group $max $min $avg $sum
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条