2013-04-12 98 views
0

对于Mongodb和MapReduce来说很新,但我很喜欢我能用它做的事情,并且大部分都可以。然而,我无法将MapReduce的结果导出为CSV。Mongodb MapReduce - Mongoexport缺少列值

下面是我在做什么:

var mapFunction1 = function() { 
         emit({isrc: this.isrc, country: this.country}, this.amount_payable); 
        }; 


var reduceFunction1 = function(keyIsrc, valuesAmountPayable) { 
         return Array.sum(valuesAmountPayable); 
        }; 

db.sales.mapReduce(
     mapFunction1, 
     reduceFunction1, 
      { out: "sales_with_total_by_country_and_isrc" } 
       ) 

db.sales_with_total_by_country_and_isrc.find() 

当我运行上面找到,我可以看到我想要的,ISRC代码,国家的和值都存在的结果。

我正在运行我的导出如下,正如我所说,这运行正常,所有列都存在,但我只有价值列中的值,而不是ISRC或国家。

mongoexport --csv -d test -c sales_with_total_by_country_and_isrc -q '{value: {$ne: 0}}' -f "isrc","country","value" -o sales_with_total_by_country_and_isrc.csv 

我在做什么错了?据我可以告诉我传递字段,我想以正确的方式与-f导出。

在此先感谢。

回答

0

好吧,我自己就这么想过。

作为,结果集合看起来像:

{ "_id" : { "isrc" : "", "country" : "AE" }, "value" : 0.391081 } 

我只需要调用-f "_id.isrc","_id.country","value"我mongoexport电话。

希望这可以帮助其他人。

+0

我的一个值看起来并没有总结,而是像这个'0.00590100000000.0059010.133150000000.0053100.002960.043208000.00189'这样的单独值连接起来。有没有人见过这个。这只是近200k的一条线。 Orignal报告是520万行,所以不错,但我想解决它。 – Raoot