6

I'm using mongoexport to export some collections into CSV files, however when I try to target fields which are members of an array I cannot get it to export correctly.

command I'm using:

mongoexport -d db -c collection -fieldFile fields.txt --csv > out.csv

and the contents of fields.txt is similar to

id
name
address[0].line1
address[0].line2
address[0].city
address[0].country
address[0].postcode

where the BSON data would be:

{
    "id": 1,
    "name": "example",
    "address": [
        {
            "line1": "flat 123",
            "line2": "123 Fake St.",
            "city": "London",
            "country": "England",
            "postcode": "N1 1AA"
        }
    ]
}

what is the correct syntax for exporting the contents of an array?

9point6
  • 175
  • 1
  • 1
  • 6

1 Answers1

7

You're almost right, try this:

id
name
address.0.line1
address.0.line2
address.0.city
address.0.country
address.0.postcode

I inserted your sample document into collection bar in database test and then ran the export like this:

./mongoexport --port 31000 -d test -c bar -fieldFile fields.txt --csv > out.csv

Then checked the results, which look good to me:

cat out.csv
id,name,address.0.line1,address.0.line2,address.0.city,address.0.country,address.0.postcode
1.0,"example","flat 123","123 Fake St.","London","England","N1 1AA"
Adam C
  • 5,132
  • 2
  • 28
  • 49