Mongodb导出嵌套字段

时间:2014-01-14 10:01:07

标签: mongodb mongoexport

我有一个MongoDB,我想导出到.csv文件。

文件:

{
  "id" : 28,
  "organisation" : "Mickey Mouse company",
  "country" : "US",
  "contactpersons" : [{
      "title" : "",
      "typecontact" : "D",
      "mobilenumber" : "757784854",
      "firstname" : "Mickey",
      "lastname" : "Mouse",
      "emailaddress" : "mickey@mouse.com"
    }],
  "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'

这或多或少有效,它导出但只导出字段firstname而不是emailaddress。我还需要它导出字段emailaddress。

知道我怎么能这样做吗?即使我确实给了emailaddress字段,我也不明白为什么它不起作用。做错了。

感谢您的帮助!

2 个答案:

答案 0 :(得分:9)

找到它。我需要删除空格。

这是错误的:

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'

答案 1 :(得分:7)

创建fields.txt文件并在其中插入以下字段:

contactpersons.0.firstname
contactpersons.0.emailaddress

然后,您可以使用以下命令将给定字段导出到.csv

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