参考 > 参考 > MongoDB软件包组件 > mongoexport
macOS Sierra和Go 1.6不兼容
在macOS Sierra上运行的用户需要3.2.10或更高版本 mongoexport
。
MongoDB 4.4中即将进行的工具迁移
从MongoDB 4.4开始,mongoexport
文档迁移到MongoDB数据库工具-mongoexport。有关即将发布的mongoexport
(工具版本100.0.0)版本的更多信息,请参见该页面
。
本页上的文档仅适用于MongoDB 4.2版本mongoexport
。mongoexport
可以按照以下“ 可用性”部分中的说明下载MongoDB 4.2版本
。
mongoexport
是一个命令行工具,可对存储在MongoDB实例中的数据进行JSON或CSV导出。
运行mongoexport
系统命令行,而不是mongo
外壳。
也可以看看
mongoimport
提供相应的“导入”功能。
该mongoexport
工具是MongoDB工具包的一部分。请查阅所用平台的
安装指南,以获取有关如何在MongoDB安装过程中安装工具包的说明。
该工具包也可以从
MongoDB下载中心获得,可以单独tools
下载,也可以包含在
TGZ
或ZIP
下载中,具体取决于平台。在Windows上,MSI
安装程序包括所有工具作为默认安装的一部分。
小费
如果从下载中心下载TGZ
或ZIP
文件,则可能需要更新PATH
环境变量以包括安装这些工具的目录。有关
更多信息,请参见所用平台的安装指南。
mongoexport
必须直接从系统命令行运行。
您必须指定collection
要导出的。如果未指定,则写入标准输出(例如stdout)。output file
mongoexport
要连接到端口27017上运行的本地MongoDB实例,无需指定主机或端口。
例如,要将collection
指定的内容从运行在端口27017上的本地MongoDB实例导出到指定的内容,请执行以下操作:output file
要指定MongoDB实例的主机和/或端口,您可以:
在中指定主机名和端口:--uri connection string
如果使用,则将数据库指定为字符串的一部分。您不能将命令行选项与一起使用。--uri connection string
--db
--uri connection string
在中指定主机名和端口--host
:
要连接到副本集以导出其数据,您可以:
在中指定副本集名称和成员:--uri connection string
如果使用,则将数据库指定为字符串的一部分。您不能将命令行选项与一起使用。--uri connection string
--db
--uri connection string
在中指定副本集名称和成员--host
:
默认情况下,mongoexport
从副本集的主数据库读取。要覆盖默认值,可以指定读取首选项:
如果指定读取的首选项标签,请包括以下
readPreferenceTags
选项:
如果使用,则将数据库指定为字符串的一部分。您不能将命令行选项与一起使用。--uri connection string
--db
--uri connection string
您可以使用--readPreference
命令行选项指定读取首
选项。如果仅指定读取首选项模式,则命令行选项采用字符串:
或者,命令行选项可以使用带引号的文档
来指定模式,可选的读取首选项标签集和可选的
maxStalenessSeconds:'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}'
要连接到分片群集以导出其数据,您可以:
在中指定mongos
实例
的主机名--uri connection string
如果使用,则将数据库指定为字符串的一部分。您不能将命令行选项与一起使用。--uri connection string
--db
--uri connection string
默认情况下,mongoexport
从分片副本集的主数据库读取。要覆盖默认值,可以指定读取首选项:
如果指定读取的首选项标签,请包括以下
readPreferenceTags
选项:
如果使用,则将数据库指定为字符串的一部分。您不能将命令行选项与一起使用。--uri connection string
--db
--uri connection string
您可以使用--readPreference
命令行选项指定读取首
选项。如果仅指定读取首选项模式,则命令行选项采用字符串:
或者,命令行选项可以使用带引号的文档
来指定模式,可选的读取首选项标签集和可选的
maxStalenessSeconds:'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}'
也可以看看
警告
避免使用mongoimport
和mongoexport
完全实例制作备份。它们不能可靠地保留所有丰富的
BSON数据类型,因为JSON只能表示BSON支持的类型的子集。如MongoDB备份方法中所述使用mongodump
和mongorestore
来实现这种功能。
从4.2版开始,mongoexport
:
--jsonFormat
。早期版本使用Extended JSON v1.0(规范模式)。
例如,以下在mongo
shell中的插入操作对BSON类型Date和64位整数使用各种shell帮助器:
必须引用64位整数的参数,以避免潜在的准确性损失。
使用mongoexport
导出数据:
在4.2+版本中,导出的数据为Extended JSON v2.0(轻松模式)。
要以扩展JSON v2.0(规范模式)输出,请包括
--jsonFormat=canonical
:
导出的数据为Extended JSON v2.0(规范模式):
在版本4.0和更早版本中,导出的数据为Extended JSON v1.0(严格模式)
从4.2版开始,MongoDB删除的--sslFIPSMode
选项mongoexport
。如果
/ 实例
配置为使用FIPS模式,mongoexport
它将使用与FIPS兼容的连接
mongod
/ 。mongos
mongod
mongos
默认情况下,mongoexport
使用read preference
primary
。要覆盖默认值,您可以在
命令行选项或中指定
读取首--readPreference
选项。--uri connection string
从4.2版开始,如果您在URI字符串中指定了读取首选项--readPreference
,而该--readPreference
值将覆盖URI字符串中指定的读取首选项。
在早期版本中,这两个选项不兼容。
mongoexport
¶--help
¶返回有关mongoexport的选项和用法的信息。
--verbose
,
-v
¶增加标准输出或日志文件中返回的内部报告的数量。-v
通过多次包含选项来增加详细程度(例如)-vvvvv
。
--version
¶返回mongoexport发行版本号。
--uri
=<connectionString>
¶3.4.6版中的新功能。
指定可解析的URI 连接字符串(用引号引起来)以连接到MongoDB部署。
有关连接字符串的组成部分的信息,请参阅“ 连接字符串URI格式”文档。
注意
对于TLS / SSL选项,请使用命令行选项代替TLS / SSL的 URI选项(从4.2开始可用)。
重要
以下命令行选项不能与--uri
option 一起使用:
--host
--port
--db
--username
--password
(如果
URI连接字符串还包含密码)--authenticationDatabase
--authenticationMechanism
而是将这些选项指定为--uri
连接字符串的一部分。
--host
=<hostname><:port>
,
-h
=<hostname><:port>
¶默认值:本地主机:27017
指定mongod
要连接的主机名称。默认情况下,mongoexport尝试连接到端口号为localhost上运行的MongoDB实例27017
。
要连接到副本集,请指定replSetName
集合成员的
和种子列表,如下所示:
指定副本集列表格式时,mongoexport始终连接到primary。
您还可以通过仅指定该成员的主机和端口来连接到副本集的任何单个成员:
如果使用IPv6并使用<address>:<port>
格式,则必须将地址和端口组合的一部分括在方括号(例如[<address>]
)中。
--port
=<port>
¶默认值:27017
指定MongoDB实例在其上侦听客户端连接的TCP端口。
--ipv6
¶在3.0版中删除。
启用IPv6支持,并允许mongoexport使用IPv6网络连接到MongoDB实例。在MongoDB 3.0之前,您必须指定--ipv6
使用IPv6。在MongoDB 3.0和更高版本中,始终启用IPv6。
--ssl
¶启用与mongod
或mongos
已启用TLS / SSL支持的连接。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCAFile
=<filename>
¶指定.pem
包含来自证书颁发机构的根证书链的文件。.pem
使用相对或绝对路径指定文件的文件名
。
从3.4版开始,如果未指定--tlsCAFile
/ net.tls.CAFile
(或它们的别名--sslCAFile
/ net.ssl.CAFile
),并且您没有使用x.509身份验证,则在连接到启用TLS / SSL的服务器时将使用系统范围的CA证书存储。
要使用x.509身份验证,--tlsCAFile
或者net.tls.CAFile
必须指定,除非使用--tlsCertificateSelector
或
--net.tls.certificateSelector
。或者,如果使用ssl
别名,
--sslCAFile
或net.ssl.CAFile
必须指定,除非使用
--sslCertificateSelector
或net.ssl.certificateSelector
。
警告
版本3.2及更早版本:对于TLS / SSL连接(--ssl
),以
mongod
和mongos
,如果mongoexport没有运行
--sslCAFile
,mongoexport不会尝试验证服务器证书。这会造成过期mongod
和mongos
证书以及伪装成有效mongod
或
mongos
实例的外部进程的漏洞。如果可能发生入侵,请确保始终指定CA文件来验证服务器证书。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyFile
=<filename>
¶指定.pem
同时包含TLS / SSL证书和密钥的文件。.pem
使用相对或绝对路径指定文件的文件名。
使用--ssl
选项连接到mongod
或mongos
已
CAFile
启用而未
启用时,此选项是必需的allowConnectionsWithoutCertificates
。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyPassword
=<value>
¶指定用于解密证书密钥文件的密码(即
--sslPEMKeyFile
)。--sslPEMKeyPassword
仅当证书密钥文件已加密时才使用该选项。在所有情况下,mongoexport都会从所有日志记录和报告输出中删除密码。
如果PEM文件中的私钥已加密并且您未指定该--sslPEMKeyPassword
选项,则mongoexport将提示您输入密码。请参阅
TLS / SSL证书密码。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCRLFile
=<filename>
¶指定.pem
包含证书吊销列表的文件。.pem
使用相对或绝对路径指定文件的文件名。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslAllowInvalidCertificates
¶绕过服务器证书的验证检查,并允许使用无效的证书。使用该
allowInvalidCertificates
设置时,MongoDB将使用无效证书记录为警告。
从MongoDB 4.0开始,如果在使用x.509身份验证时指定
--sslAllowInvalidCertificates
或
(或在MongoDB 4.2中为别名或
),则无效的证书仅足以建立TLS / SSL连接,但不足以进行身份验证。net.ssl.allowInvalidCertificates: true
--tlsAllowInvalidateCertificates
net.tls.allowInvalidCertificates: true
警告
尽管可用,但请避免使用该
--sslAllowInvalidCertificates
选项。如果必须使用
--sslAllowInvalidCertificates
,请仅在不可能进行入侵的系统上使用该选项。
如果