Я использую версию MongoDB 2.6.x
. И мне нужно экспортировать документы из определенной коллекции.MongoDB - mongoexport все объекты в вложенном массиве
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 возвращается но не все. Но, что мне нужно, как показано ниже
field_array.sub_field_1,field_array.sub_field_2
sub_val_1,sub_val_1
sub_val_2,sub_val_2
т.е., все объекты в field_array.
Любая помощь?
Вы можете запустить агрегатный запрос на ваши документы, а затем поместить все данные, присутствующие в field_array на новую коллекцию, используя $ из агрегата. Тогда вам легко экспортировать документы. Проверьте эту ссылку. http://docs.mongodb.org/manual/reference/operator/aggregation/out/ – mallik