【发布时间】:2014-10-15 09:14:46
【问题描述】:
我正在使用 MongoDB 版本 2.6.x。我需要从特定集合中导出文档。
mongoexport 是满足需求的工具。但是,我不知道如何导出嵌套数组下的所有对象。以下是我的示例文档。
{
"_id": 1,
"field_1": "value1",
"field_2": "value2",
"field_array": [
{"sub_field_1": "sub_val_1", "sub_field_2": "sub_val_2"},
{"sub_field_1": "sub_val_1", "sub_field_2": "sub_val_2"},
{"sub_field_1": "sub_val_1", "sub_field_2": "sub_val_2"}
]
}
下面是mongoexport 命令
mongoexport -d db_name -c collection_name -q '{"field_array.sub_field_1": {$gte: "some_value_1", $lt: "some_value_2"}}' -fieldFile fields.txt --csv > data_report.csv
其中,fields.txt 有以下内容
field_array.sub_field_1
field_array.sub_field_2
我在 csv 中获得如下数据,即空字段。
field_array.sub_field_1,field_array.sub_field_2
,
但是,如果我在fields.txt 中指定索引值,如下所示
field_array.0.sub_field_1
field_array.0.sub_field_2
然后,我得到以下数据
field_array.sub_field_1,field_array.sub_field_2
sub_val_1,sub_val_1
即,仅返回 field_array 中的 1 个对象,但不是全部。 但是,我需要的是如下
field_array.sub_field_1,field_array.sub_field_2
sub_val_1,sub_val_1
sub_val_2,sub_val_2
即 field_array 中的所有对象。
有什么帮助吗?
【问题讨论】:
-
您可以在您的文档上运行聚合查询,然后使用 $out of aggregate 将 field_array 中存在的所有数据放入一个新集合中。然后,您可以轻松导出文档。检查此链接。 docs.mongodb.org/manual/reference/operator/aggregation/out
标签: mongodb csv mongoexport