how use mongoexport to export only specific fields in a sub-document
is there a way to export only specified fields in a sub-document while using mongoexport? mongo docs says to just use -f field1, field2 etc... but that only works with top level fields. i have a document inside of the main document that also has fields. is there any way to get only those?
Example:
{
"topField1": "topValue1",
"topField2": "topValue2",
"subDoc1: {
"subField1": "subValue1",
"subField2": "subValue2"
}
}
is there a wa开发者_StackOverflowy to specify that i ONLY get the field subField2?
i know in a regular mongo query i could use "subDoc1.subField2" which would simply
return {"$oid": 122432432, {"subDoc1":{"subField2": "subValue2"}}
but this doesn't seem to work with mongoexport
.
also i want to export as json
.
what kind of error do you get using dotnotation? I'm running mongoDB 1.8.2 and for me the following works:
mongoexport -d dbName -c collectionName -f subDoc1.subField2 --csv -o /path/to/file.csv
The CSV looks like this
subDoc1.subField2 #header with field names
"subValue2" #actual entry
mongoexport --db db_name --collection collection_name --fields 'No,Name' --out collection_name.json
{"_id":{"$oid":"5b2a1d540e63356357cbff46"},"name":"vijil","dep":"MCA"} {"_id":{"$oid":"5b2a1d5e0e63356357cbff47"},"name":"arul","dep":"MCA"} {"_id":{"$oid":"5b2a1d670e63356357cbff48"},"name":"abessh","dep":"MCA"}
In case we are not sure of the subdocument value .i.e in this case : subField1
or subField2
, but what we need is just to extract the first field of the sub-collection.
Can mongoexport handle that ?
精彩评论