对Mongodb和MapReduce来说很新,但是我喜欢用它做什么,并且大部分时间都可以。但是,我无法将MapReduce的结果导出为CSV。
这就是我正在做的事情:
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或Country。
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
我做错了什么?据我所知,我正在以正确的方式传递我想要导出的字段。
提前致谢。
答案 0 :(得分:0)
好的,我自己也是这样说的。
因为,产生的集合看起来像:
{ "_id" : { "isrc" : "", "country" : "AE" }, "value" : 0.391081 }
我只需要在我的mongoexport电话中拨打-f "_id.isrc","_id.country","value"
。
希望这可以帮助其他人。