MongoDB - mongoexport alle Objekte in verschachtelten Arrays

Ich bin mit MongoDB version 2.6.x. Und ich brauche zu exportieren, Dokumente aus einer bestimmten Sammlung.

mongoexport ist das Werkzeug, welches Ihnen die Notwendigkeit. Allerdings weiß ich nicht wie ich den export alle Objekte unter einem verschachtelten array. Unten ist das Beispiel-Dokument, das ich habe.

{
  "_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"}  
  ] 
}

Unten ist die mongoexport Befehl

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

wo fields.txt hat folgenden Inhalt

field_array.sub_field_1
field_array.sub_field_2

Bekomme ich die Daten wie unten in der csv habe ich.e leere Felder.

field_array.sub_field_1,field_array.sub_field_2
,

Allerdings, wenn ich angeben, dass der index-Wert in fields.txt wie unten

field_array.0.sub_field_1
field_array.0.sub_field_2

dann, ich bekomme die folgenden Daten

field_array.sub_field_1,field_array.sub_field_2
sub_val_1,sub_val_1

ich.e, nur 1 Objekt in der field_array zurückgegeben, aber nicht alle.
Aber, was ich brauche, ist, wie unten

field_array.sub_field_1,field_array.sub_field_2
sub_val_1,sub_val_1
sub_val_2,sub_val_2

ich.e, alle Objekte in der field_array.

Hilfe?

  • Sie können führen Sie eine zusammengesetzte Abfrage, die auf Ihre Dokumente und legen Sie dann alle Daten field_array, um eine neue Sammlung mit $out-of-Aggregat. Dann ist es einfach für Sie zum exportieren der Dokumente. Überprüfen Sie diesen link. docs.mongodb.org/manual/reference/operator/aggregation/out
InformationsquelleAutor Ayaz Pasha | 2014-10-15
Schreibe einen Kommentar