【问题标题】:Map Reduce functions executes on shell but fails to compile via MapReduceCommand java apiMap Reduce 函数在 shell 上执行,但无法通过 MapReduceCommand java api 编译
【发布时间】:2012-02-28 00:26:12
【问题描述】:

我正在尝试通过 mongo Java API - MapReduceCommand 类运行以下命令。在调试期间,MapReduceCommand mrc 似乎包含以下内容。

{ "mapreduce" : "inColl" , "map" : "function mapf(){var vr = new Date(this.reg_d.getFullYear(),this.reg_d.getMonth(),this.reg_d.getDate());var key = {seg_dt:vr,com: this.com}emit(key,{count:1});}" , "reduce" : "function reducef(key, values){var r = {count:0};values.forEach(function(v){r.count += v.count;});return r;}" , "verbose" : true , "out" : { "reduce" : "outColl"} , "query" : { "tp" : { "$in" : [ 1 , 0]}} , "finalize" : "function finalizef(key, value){var r = {com:key.com,ou_ke:0,seg_dt:key.seg_dt};r.ou_ke += value.count ;return r;}"}

当我执行 MapReduceOutput = inColl.mapreduce(mrc); 时,出现以下错误

2 月 27 日星期一 23:39:49 [conn48] 在 {0:1} 上为 >djkdb.tmp.mr.inColl_outColl_15_inc 构建新索引 Mon Feb 27 23:39:49 [conn48] done for 0 records 0secs 2 月 27 日星期一 23:39:49 [conn48] 在 { _id: 1 } 上为 >djkdb.tmp.mr.inColl_outColl_15_inc 建立新索引 Mon Feb 27 23:39:49 [conn48] done for 0 records 0secs 2 月 27 日星期一 23:39:51 [conn47] JS 错误:语法错误:缺失;在声明 nofile_b:0 之前 2 月 27 日星期一 23:39:51 [conn47] 编译失败:函数 mapf(){var vr = new >Date(this.reg_d.getFullYear(),this.reg_d.getMonth(),this.reg_d.getDate() );var key = >{seg_dt:vr,com: this.com}emit(key,{count:1});} Mon Feb 27 23:39:51 [conn47] mr 失败,删除集合

这是一个 javascript 语法问题还是我在这里遗漏了一些基本的东西?

谢谢!

【问题讨论】:

    标签: mongodb mongodb-java


    【解决方案1】:

    看起来你有语法错误:

    function mapf(){
        var vr = new Date(this.reg_d.getFullYear(),this.reg_d.getMonth(),this.reg_d.getDate());
        var key = {seg_dt:vr,com: this.com}  <--- syntax problem
        emit(key,{count:1});
    }
    

    您在第 3 行缺少分号。

        var key = {seg_dt:vr,com: this.com}
    

    我在这里的提示是错误消息:

    [conn47] JS Error: SyntaxError: missing ; before statement 
    

    我建议使用一些东西来帮助格式化您的代码。简单地添加适当的马车就可以使错误非常明显。

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 2023-03-22
      • 2017-08-19
      • 2013-07-18
      • 2018-02-19
      • 1970-01-01
      相关资源
      最近更新 更多