mongodumpmongorestorebsondumpmongoimportmongoexportmongostatmongotopmongofilesMongoDB工具 >MongoDB数据库工具 > mongoexport
mongoexport 是一个命令行工具,可对存储在MongoDB实例中的数据进行JSON或CSV导出。
运行mongoexport系统命令行,而不是mongo外壳。
也可以看看
mongoimport 提供相应的结构化数据导入功能。
从MongoDB 4.4开始,mongoexport现已与MongoDB服务器分开发布,并使用其自己的版本控制(初始版本为)100。以前,mongoexport该版本与MongoDB Server一起发布,并使用了匹配的版本控制。
有关MongoDB 4.2或更早版本的
文档mongoexport,请参阅该工具版本的MongoDB服务器文档:
本文档的版本100的mongoexport。
mongoexport版本100支持以下版本的MongoDB Server:
虽然mongoexport在早期版本的MongoDB服务器上可以使用,但不能保证任何此类兼容性。
mongoexport100以下平台支持该版本:
| x86_64 | 的ARM64 | PPC64LE | s390x | |
|---|---|---|---|---|
| 亚马逊2 | ✓ | |||
| 亚马逊2013.03+ | ✓ | |||
| Debian 10 | ✓ | |||
| Debian 9 | ✓ | |||
| Debian 8 | ✓ | |||
| RHEL / CentOS 8 | ✓ | ✓ | ||
| RHEL / CentOS 7 | ✓ | ✓ | ✓ | |
| RHEL / CentOS 6 | ✓ | ✓ | ||
| SUSE 12 | ✓ | |||
| Ubuntu 20 | ✓ | |||
| Ubuntu 18 | ✓ | ✓ | ✓ | ✓ |
| Ubuntu 16 | ✓ | ✓ | ✓ | ✓ |
| Windows 8及更高版本 | ✓ | |||
| Windows Server 2012及更高版本 | ✓ | |||
| macOS 10.12或更高版本 | ✓ |
mongoexport 必须直接从系统命令行运行。
您必须指定collection要导出的。如果未指定,则写入标准输出(例如stdout)。output filemongoexport
要连接到端口27017上运行的本地MongoDB实例,无需指定主机或端口。
例如,要将collection指定的内容从运行在端口27017上的本地MongoDB实例导出到指定的内容,请执行以下操作:output file
要指定MongoDB实例的主机和/或端口,您可以:
在中指定主机名和端口:--uri connection string
使用时,可以将数据库指定为字符串的一部分。--uri connection string
在中指定主机名和端口--host:
要连接到副本集以导出其数据,您可以:
在中指定副本集名称和成员:--uri connection string
使用时,可以将数据库指定为字符串的一部分。--uri connection string
在中指定副本集名称和成员--host:
默认情况下,mongoexport从副本集的主数据库读取。要覆盖默认值,可以指定读取首选项:
如果指定读取的首选项标签,请包括以下
readPreferenceTags选项:
使用时,可以将数据库指定为字符串的一部分。--uri connection string
您可以使用--readPreference命令行选项指定读取首
选项。如果仅指定读取首选项模式,则命令行选项采用字符串:
或者,命令行选项可以使用带引号的文档
来指定模式,可选的读取首选项标签集和可选的
maxStalenessSeconds:'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}'
要连接到分片群集以导出其数据,您可以:
在中指定mongos实例
的主机名--uri connection string
使用时,可以将数据库指定为字符串的一部分。--uri connection string
默认情况下,mongoexport从分片副本集的主数据库读取。要覆盖默认值,可以指定读取首选项:
如果指定读取的首选项标签,请包括以下
readPreferenceTags选项:
使用时,可以将数据库指定为字符串的一部分。--uri connection string
您可以使用--readPreference命令行选项指定读取首
选项。如果仅指定读取首选项模式,则命令行选项采用字符串:
或者,命令行选项可以使用带引号的文档
来指定模式,可选的读取首选项标签集和可选的
maxStalenessSeconds:'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}'
也可以看看
警告
避免使用mongoimport和mongoexport完全实例制作备份。它们不能可靠地保留所有丰富的
BSON数据类型,因为JSON只能表示BSON支持的类型的子集。如MongoDB备份方法中所述使用mongodump
和mongorestore来
实现这种功能。
--jsonFormat。例如,以下在mongo
shell中的插入操作对BSON类型Date和64位整数使用各种shell帮助器:
必须引用64位整数的参数,以避免潜在的准确性损失。
使用mongoexport导出数据:
导出的数据为Extended JSON v2.0(轻松模式):
要以扩展JSON v2.0(规范模式)输出,请包括
--jsonFormat=canonical:
导出的数据为Extended JSON v2.0(规范模式):
mongoexport自动创建符合FIPS的连接到一个mongod/ mongos被
配置为使用FIPS模式。
默认情况下,mongoexport使用read preference
primary。要覆盖默认值,您可以在
命令行选项或中指定
读取首--readPreference选项。--uri connection string
如果您在URI字符串和中指定读取首选项,则
--readPreference该
--readPreference值将覆盖URI字符串中指定的读取首选项。
mongoexport¶--help¶返回有关mongoexport的选项和用法的信息。
--verbose, -v¶增加标准输出或日志文件中返回的内部报告的数量。-v通过多次包含选项来增加详细程度(例如)-vvvvv。
--version¶返回mongoexport发行版本号。
--uri=<connectionString>¶指定可解析的URI 连接字符串(用引号引起来)以连接到MongoDB部署。
有关连接字符串的组成部分的信息,请参阅“ 连接字符串URI格式”文档。
注意
对于TLS / SSL选项,请使用命令行选项代替TLS / SSL的 URI选项(从4.2开始可用)。
--host=<hostname><:port>, -h=<hostname><:port>¶默认值:本地主机:27017
指定mongod要连接的主机名称。默认情况下,mongoexport尝试连接到端口号为localhost上运行的MongoDB实例27017。
要连接到副本集,请指定replSetName集合成员的
和种子列表,如下所示:
指定副本集列表格式时,mongoexport始终连接到primary。
您还可以通过仅指定该成员的主机和端口来连接到副本集的任何单个成员:
如果使用IPv6并使用<address>:<port>格式,则必须将地址和端口组合的一部分括在方括号(例如[<address>])中。
另外,当与选项一起使用时,您也可以直接在URI连接字符串中指定主机名
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongoexport--host--uri
--port=<port>¶默认值:27017
指定MongoDB实例在其上侦听客户端连接的TCP端口。
另外,当与选项一起使用时,您也可以直接在URI连接字符串中指定端口
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongoexport--port--uri
--ssl¶启用与mongod或mongos已启用TLS / SSL支持的连接。
另外,当与选项一起使用时,您也可以直接在URI连接字符串中配置TLS / SSL支持
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongoexport--ssl--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCAFile=<filename>¶指定.pem包含来自证书颁发机构的根证书链的文件。.pem使用相对或绝对路径指定文件的文件名
。
另外,当与选项一起使用时,您也可以.pem直接在URI连接字符串中指定文件
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongoexport--sslCAFile--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyFile=<filename>¶指定.pem同时包含TLS / SSL证书和密钥的文件。.pem使用相对或绝对路径指定文件的文件名。
使用--ssl选项连接到mongod或mongos已
CAFile启用而未
启用时,此选项是必需的allowConnectionsWithoutCertificates。
另外,当与选项一起使用时,您也可以.pem直接在URI连接字符串中指定文件
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongoexport--sslPEMKeyFile--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyPassword=<value>¶指定用于解密证书密钥文件的密码(即
--sslPEMKeyFile)。--sslPEMKeyPassword仅当证书密钥文件已加密时才使用该选项。在所有情况下,mongoexport都会从所有日志记录和报告输出中删除密码。
如果PEM文件中的私钥已加密并且您未指定该--sslPEMKeyPassword选项,则mongoexport将提示您输入密码。请参阅
TLS / SSL证书密码。
另外,当与选项一起使用时,也可以直接在URI连接字符串中指定密码
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongoexport--sslPEMKeyPassword--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCRLFile=<filename>¶指定.pem包含证书吊销列表的文件。.pem使用相对或绝对路径指定文件的文件名。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。