我需要将数组中对象的值导出到 CSV。假设我的文档是:
{ name:"test", types:[ {type:"A"}, {type:"B"}, {type:"C"} ] }
我的目标是产生如下输出:
"test", "A" "test", "B" "test", "C"
以下也是可以接受的:
"test", "A,B,C"
我正在尝试通过 mongoexport 使用:
mongoexport -h localhost -d mydb -c mycollection -f name,types.type --csv
不幸的是,我得到:
"test",
我找到了有关引用特定数组元素的文档,例如“types.0.type”,但我的数组的长度未知。有什么想法吗?
最佳答案
如果您对 Perl 感到满意,那么 article 中的 ARJsonLib.pm 库,提供您创建自己的小玩具所需的大部分功能。请注意,文章中的版本是来 self 一起破解的玩具的 stub ,它完全可以满足您的需求以及其他一些东西,但由于不是 mongoDB 文章,它缺少您需要的一个功能,它可以找到字段/键mongoDB 集合,并将它们存储在一个数组中,但重构起来很简单,只需编写一些东西,从您的集合中提取 n 个文档,将它们插入一个数组并调用 findKeysInJsonColl()。无论如何,其中一些函数将 MongoDB 游标作为参数,并且:
convertToDojoGrid()
convertToExcel()
CSV 输出再次丢失,但添加回 convertToExcel() 很简单。
例如
...
my $iRows = convertToExcel("/tmp/test.xlsx", $oMongoData, "", \@aOutFields, "xlsx");
...
其中:$oMongoData 是一个 MongoDB 游标引用,@aOutFields 是一个数组,其中包含您希望出现在工作表中的字段/键,
关于arrays - 如何将对象数组中的属性 mongoexport 导出到 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466203/