2014-01-14 27 views
9

私はMongoDBを持っており、.csvファイルにエクスポートしたい。Mongodbネストされたフィールドをエクスポート

文書:

{ 
    "id" : 28, 
    "organisation" : "Mickey Mouse company", 
    "country" : "US", 
    "contactpersons" : [{ 
     "title" : "", 
     "typecontact" : "D", 
     "mobilenumber" : "757784854", 
     "firstname" : "Mickey", 
     "lastname" : "Mouse", 
     "emailaddress" : "[email protected]" 
    }], 
    "modifieddate" : "2013-11-21T16:04:49+0100" 
} 

私はすべての文書をエクスポートしたいとだけ私は、このコマンドラインを使用して、フィールドcontactpersons.firstnameとcontactpersons.emailaddress

をしたい:

 mongoexport -o /tmp/export.csv -host dbmongo -port 27017 -db organisation -collection organisationa -u user -p password -csv -fields 'contactpersons.0.firstname, contactpersons.0.emailaddress' 

これは、より多くの作品それ以下ではエクスポートしますが、電子メールアドレスではなくフィールド名をエクスポートします。私はまた、それはフィールドのemailaddressをエクスポートする必要があります。

どうすればいいですか?私はemailaddressフィールドを与えても、なぜ動作しないのかわかりません。 Doエラーが返されます。

ありがとうございました!

+0

二重引用符は私anywway、mongoexport -oたExport.csv -db stackoverflowの-collection exportcsv -fields「contactpersonsのために完全に働きました。 0.firstname、contactpersons.0.emailaddress "--csv –

答えて

6

はfields.txtファイルを作成し、その中に次のフィールドを挿入します。

contactpersons.0.firstname 
contactpersons.0.emailaddress 

次に、あなたがそれを見つけた.csv

mongoexport -d organisation -c organisation -fieldFile fields.txt --csv > /tmp/export.csv 
+0

もう少し情報が必要ですが、' contactpersons'配列から複数の文書をエクスポートしたいのですが? 28、 "組織": "ABC社"、 "国": "US"、 "contactpersons":[{ "タイトル": "" 例えば、私はこの '{ "ID" のような文書を持っています、 "FIRSTNAME": "ミッキー"、 "姓": "マウス"、 "EMAILADDRESS": "[email protected]" }、{ "タイトル": ""、 "FIRSTNAME":「ドナルド"、 " lastname ":" Duck "、 " emailaddress ":" [email protected] " }]、 " modifiededate ":" 2013-11-21T16:04:49 + 0100 " }両方のオブジェクトを 'contactpersons'配列にエクスポートします。 –

+0

正しいsyintaxは '--fieldFile fields.txt'です – DistribuzioneGaussiana

+0

@AyazPasha最後に複数の要素を含む可能性のある配列を持つ文書をエクスポートするソリューションはありますか? – akruspe

7

に与えられたフィールドをエクスポートするには、次のコマンドを使用することができます。スペースを取り除く必要がありました。

これは間違っている:

mongoexport -o /tmp/export.csv -host dbmongo -port 27017 -db organisation -collection organisationa -u user -p password -csv -fields 'contactpersons.0.firstname, contactpersons.0.emailaddress' 

これは正しいです:

mongoexport -o /tmp/export.csv -host dbmongo -port 27017 -db organisation -collection organisationa -u user -p password -csv -fields 'contactpersons.0.firstname,contactpersons.0.emailaddress' 
+0

MickeyとDonaldの両方のドキュメントを別々の行にエクスポートしますか? – user3186866

関連する問題