Docs 菜单
Docs 主页
/
MongoDB 数据库工具
/

mongoexport 示例

在此页面上

  • 以 CSV 格式导出
  • 以 JSON 格式导出
  • 从使用身份验证运行的远程主机导出
  • 导出查询结果
  • 使用 AWS IAM 档案连接到 MongoDB Atlas 集群
  • 了解详情

本页显示 mongoexport的示例。

从系统命令行运行 mongoexport,而非 mongo shell。

在以下示例中, mongoexport集合逗号分隔值(CSV)格式将users数据库中的contacts集合中的数据导出到文件/opt/backups/contacts.csv中。

mongoexport连接的mongod实例在本地主机端口号27017上运行。

以 CSV 格式导出时,必须指定待导出文档中的字段。此操作会指定要导出的 nameaddress 字段。

mongoexport --db=users --collection=contacts --type=csv --fields=name,address --out=/opt/backups/contacts.csv

而输出将类似如下所示:

name, address
Sophie Monroe, 123 Example Road
Charles Yu, 345 Sample Street

仅对于 CSV 导出,您还可在包含要导出的行分隔式字段列表的文件中 指定这些字段。此文件每行只能有一个字段。

例如,可以在文件 fields.txt 中指定 nameaddress 字段:

name
address

然后,使用 --fieldFile选项指定要与文件一起导出的字段:

mongoexport --db=users --collection=contacts --type=csv --fieldFile=fields.txt --out=/opt/backups/contacts.csv

--noHeaderLine 选项可用于排除 CSV 导出中的字段名称。以下示例将导出 users 数据库中 contacts 集合内的 nameaddress 字段,并使用 --noHeaderLine 来隐藏作为第一行的字段名称的输出:

mongoexport --db=users --collection=contacts --type=csv --fields=name,address --noHeaderLine --out=/opt/backups/contacts.csv

然后,CSV 输出将类似于:

Sophie Monroe, 123 Example Road
Charles Yu, 345 Sample Street

此示例将从在本地主机端口号 27017 上运行的 MongoDB 实例创建 contacts 集合的导出。此操作会以 JSON 格式将导出内容写入 contacts.json 文件。

mongoexport --db=sales --collection=contacts --out=contacts.json

以下示例将从要求进行身份验证的远程 MongoDB 实例导出 marketing 数据库中的 contacts 集合。

指定:

提示

省略 --password 选项以让 mongoexport 提示输入密码:

mongoexport --host=mongodb1.example.net --port=27017 --username=someUser --authenticationDatabase=admin --collection=contacts --db=marketing --out=mdb1-examplenet.json

或者,使用--uri选项指定托管、端口、用户名、身份验证数据库和数据库。

提示

省略 URI 字符串中的密码以让 mongoexport 提示输入密码:

mongoexport --uri='mongodb://someUser@mongodb0.example.com:27017/marketing?authsource=admin' --collection=contacts --out=mdb1-examplenet.json

可以通过提供带有 --query 选项的查询过滤器来仅导出查询的结果,并使用 "--db" 选项将结果限制为单个数据库。

例如,此命令返回sales数据库的contacts集合中的所有文档,这些文档包含名为dept且等于"ABC"的字段,且字段date大于或等于 ISODate(" 2018 - 01 - 01 ")(使用日期的规范格式 { "$date": "YYYY-MM-DDTHH:mm:ss.mmm<offset>"}

mongoexport --db=sales --collection=contacts --query='{"dept": "ABC", date: { $gte: { "$date": "2018-01-01T00:00:00.000Z" } }}'

必须用单引号 ('{ ... }') 括起查询文档,确保它不会与 shell 环境交互。

100.1.0 版本新增

要连接到已配置为支持通过MongoDB Atlas Amazon Web ServicesAmazon Web Services IAM 凭证进行身份验证的 集群,请执行 6} ,为 提供一个connection string mongoexport,类似于以下内容:

mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

以这种方式使用 AWS IAM 凭证连接 Atlas 时,会使用 MONGODB-AWS authentication mechanism$external authSource,如本示例所示。

如果还使用 AWS 会话令牌,请为其提供 AWS_SESSION_TOKEN authMechanismProperties 值,如下所示:

mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>

注意

如果 AWS 访问密钥 ID、秘密访问密钥或会话令牌包含以下字符:

: / ? # [ ] @

这些字符必须使用百分比编码进行转换。

或者,可以使用 --username--password--awsSessionToken 选项在连接字符串外部提供 AWS 访问密钥 ID、私有访问密钥和可选会话令牌,如下所示:

mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>

当作为命令行参数提供时,这三个选项无需进行百分号编码。

还可以使用标准 AWS IAM 环境变量在平台上设置这些凭证。mongoexport 在使用 MONGODB-AWS authentication mechanism 时会检查以下环境变量:

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

如果设置,则无需在连接字符串中或通过其显式选项指定这些档案。

注意

如果选择使用 AWS 环境变量来指定这些值,则无法与这些凭证的相应显式选项或连接字符串选项进行混合和匹配。使用针对访问密钥 ID秘密访问密钥(以及会话令牌,如果已使用)的环境变量,或是使用显式或连接字符串选项来指定其中每一个档案。

以下示例会在 bash Shell 中设置这些环境变量:

export AWS_ACCESS_KEY_ID='<aws access key id>'
export AWS_SECRET_ACCESS_KEY='<aws secret access key>'
export AWS_SESSION_TOKEN='<aws session token>'

在其他Shell中设置环境变量的事务语法会有所不同。有关更多信息,请参阅适用于您的平台的文档。

您可以使用以下命令验证这些环境变量是否已设置:

env | grep AWS

一旦制定,以下示例将使用这些环境变量连接到 MongoDB Atlas 集群:

mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

后退

行为