mongoexport 示例
本页显示 mongoexport
的示例。
从系统命令行运行 mongoexport
,而非 mongo
shell。
以 CSV 格式导出
使用 选项以逗号分隔值(CSV)格式导出数据--fields
在以下示例中, mongoexport
集合逗号分隔值(CSV)格式将users
数据库中的contacts
集合中的数据导出到文件/opt/backups/contacts.csv
中。
mongoexport
连接的mongod
实例在本地主机端口号27017
上运行。
以 CSV 格式导出时,必须指定待导出文档中的字段。此操作会指定要导出的 name
和 address
字段。
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 格式导出的字段
仅对于 CSV 导出,您还可在包含要导出的行分隔式字段列表的文件中 指定这些字段。此文件每行只能有一个字段。
例如,可以在文件 fields.txt
中指定 name
和 address
字段:
name address
然后,使用 --fieldFile
选项指定要与文件一起导出的字段:
mongoexport --db=users --collection=contacts --type=csv --fieldFile=fields.txt --out=/opt/backups/contacts.csv
从 CSV 输出中排除字段名称
--noHeaderLine
选项可用于排除 CSV 导出中的字段名称。以下示例将导出 users
数据库中 contacts
集合内的 name
和 address
字段,并使用 --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
以 JSON 格式导出
此示例将从在本地主机端口号 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 环境交互。
使用 AWS IAM 档案连接到 MongoDB Atlas 集群
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>
注意
或者,可以使用 --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>