mongoexport 示例
本页展示了以下示例mongoexport
.
从系统命令行运行 mongoexport
,而不是从mongo
命令行。
以 CSV 格式导出
使用 --fields
选项以 CSV 格式导出数据
以下示例中,mongoexport
从 users
数据库的 contacts
集合中以 CSV 格式导出数据到文件 /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
集合。此操作将导出写入到contacts.json
文件中,该文件以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
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 集群,该集群通过 AWS IAM 凭据 进行身份验证的集群,请为 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
认证机制
和$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
选项在连接字符串外部提供,如下所示
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 环境变量 在您的平台上设置这些凭据。当您使用 MONGODB-AWS
认证机制
:
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>