2013-04-12 134 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