本文档适用于 mongorestore 的 100.18.0 版本。
定义
mongorestore 程序将数据从 mongodump 创建的二进制数据库转储或标准输入加载到 mongod 或 mongos 实例中。mongorestore 会在您安装MongoDB Database Tools时安装。
您可以使用 Database Tools 从自托管部署迁移到 MongoDB Atlas。MongoDB Atlas 是用于云中 MongoDB 部署的完全托管服务。要了解详情,请参阅使用 mongorestore 播种。
要了解迁移到 MongoDB Atlas 的所有方法,请参阅迁移或导入数据。
您可以将从 mongodump 生成的 BSON 文件恢复到与源部署运行相同主版本或特征兼容性版本的 MongoDB 部署中。
mongorestore 具有以下行为和限制:
您必须从系统命令行而非 MongoDB Shell 运行
mongorestore。MongoDB 不支持为同一集合同时运行多个
mongorestore程序。您不能将
mongorestore与使用Queryable Encryption的集合一起使用。
语法
在运行 mongorestore 时,请使用以下命令语法:
mongorestore <options> <connection-string> <directory or file to restore>
请查看选项,了解在运行 mongorestore 时可以使用的选项。
当您在不带任何参数的情况下运行 mongorestore 时,默认设置是将数据从本地 ./dump 目录恢复到本地 mongod 实例,该实例运行在端口 27017:
mongorestore
您还可以在不同路径下指定 dump 目录。例如,以下命令将数据从位于 ./downloads/dump 的目录恢复到由连接字符串指定的 Atlas 集群:
mongorestore --uri="<my-connection-string>" ./downloads/dump
当 mongorestore 从提供的目录恢复时,它会根据需要创建数据库和集合并记录其进度:
2019-07-08T14:37:38.942-0400 preparing collections to restore from 2019-07-08T14:37:38.944-0400 reading metadata for test.bakesales from dump/test/bakesales.metadata.json 2019-07-08T14:37:38.944-0400 reading metadata for test.salaries from dump/test/salaries.metadata.json 2019-07-08T14:37:38.976-0400 restoring test.salaries from dump/test/salaries.bson 2019-07-08T14:37:38.985-0400 no indexes to restore 2019-07-08T14:37:38.985-0400 finished restoring test.salaries (10 documents, 0 failures) 2019-07-08T14:37:39.009-0400 restoring test.bakesales from dump/test/bakesales.bson 2019-07-08T14:37:39.011-0400 restoring indexes for collection test.bakesales from metadata 2019-07-08T14:37:39.118-0400 finished restoring test.bakesales (21 documents, 0 failures) 2019-07-08T14:37:39.118-0400 restoring users from dump/admin/system.users.bson 2019-07-08T14:37:39.163-0400 restoring roles from dump/admin/system.roles.bson 2019-07-08T14:37:39.249-0400 31 document(s) restored successfully. 0 document(s) failed to restore.
此外,还可以从 dump 目录恢复一个或多个特定集合。例如,以下操作可从 dump 目录中的相应数据文件恢复 test.purchaseorders 集合:
mongorestore --nsInclude=test.purchaseorders ./dump
如果 dump 目录不包含指定命名空间的相应数据文件,则 mongorestore 不会恢复任何数据。例如,以下命令指定的集合命名空间在 dump 目录中没有相应的数据:
mongorestore --nsInclude=foo.bar dump/
mongorestore 输出以下消息:
2019-07-08T14:38:15.142-0400 preparing collections to restore from 2019-07-08T14:38:15.142-0400 0 document(s) restored successfully. 0 document(s) failed to restore.
如果 mongorestore 无法从 --nsInclude 选项、元数据文件或转储目录名称中找到数据库信息,则会恢复到 test数据库。示例,以下 mongorestore 命令从 bands.bson文件恢复:
mongorestore ./bands.bson
由于没有类似 ./dump/music/bands.bson 的命名空间信息或路径,mongorestore 的输出如下:
2026-01-23T11:26:31.821-0500 restoring test.bands from bands.bson 2026-01-23T11:26:31.867-0500 finished restoring test.bands (1 document, 0 failures) 2026-01-23T11:26:31.867-0500 1 document(s) restored successfully. 0 document(s) failed to restore.
mongorestore 将数据恢复到 test数据库中的 bands集合。如果数据库和集合不存在,则会创建它们。
有关更多 mongorestore 示例,请参阅 mongorestore 示例。
选项
本节包含有关 mongorestore 的所有可用选项的信息。
--archive=<file>从由
mongodump --archive创建的存档中恢复。mongorestore从指定的存档文件恢复,或者,如果未指定文件,则从标准输入(stdin)恢复。要从存档文件恢复,请运行带
--archive选项和存档文件名的mongorestore。要从标准输入恢复,运行带有
--archive选项的mongorestore并省略文件名。以下示例展示了如何从标准输入恢复:
mongodump --archive | mongorestore --archive 此命令管道首先使用
--archive标志运行mongodump,将其输出打印到stdout或标准输出。然后,使用|管操作符将输入通过管道传输到mongorestore的标准输入。重要
您不能将
--archive选项与--dir选项一起使用,该选项指定转储目录。--db从存档文件恢复时,--collection和 选项已弃用。要恢复特定数据库或集合,请使用--nsInclude。如果您使用
--archive选项与<path>参数,mongorestore将忽略<path>。
--authenticationDatabase=<dbname>指定已创建指定
--username的身份验证数据库。与--username和--password选项结合使用。有关身份验证数据库的更多信息,请参阅身份验证数据库。
如果您使用 GSSAPI (Kerberos)、PLAIN (LDAP SASL) 或
MONGODB-AWSauthentication mechanisms,则必须将--authenticationDatabase设立为$external。或者,也可以直接在
URI connection string中指定身份验证数据库。在提供连接字符串的同时使用--authenticationDatabase并指定冲突信息,将导致错误。
--authenticationMechanism=<name>默认值:SCRAM-SHA-1
指定
mongorestore实例用来向mongod或mongos进行身份验证的机制。在版本100.1.0中进行了更改。:
从版本
100.1.0开始,mongorestore添加了在连接 MongoDB Atlas 集群时对MONGODB-AWS身份验证机制的支持。值说明RFC 5802 使用 SHA-1 哈希函数的标准 Salted Challenge Response Authentication Mechanism
RFC 7677 使用 SHA-256 哈希函数的标准 Salted Challenge Response Authentication Mechanism
需将 featureCompatibilityVersion 设为
4.0。MongoDB TLS/SSL 证书身份验证。
MONGODB-AWS使用 AWS IAM 凭据进行外部身份验证,用于连接到 MongoDB Atlas 集群。请参阅使用 AWS IAM 凭证连接到 MongoDB Atlas 集群。
100.1.0版本新增。:
GSSAPI (Kerberos)
使用 Kerberos 的外部身份验证。此机制仅在 MongoDB Enterprise 中可用。
普通版 (LDAP SASL)
使用 LDAP 进行外部身份验证。也可使用
PLAIN对数据库内用户进行身份验证。PLAIN以纯文本形式传输密码。此机制仅在 MongoDB Enterprise 中可用。或者,也可以直接在
URI connection string中指定身份验证机制。在提供连接字符串的同时使用--authenticationMechanism并指定冲突信息,将导致错误。
--awsSessionToken=<AWS Session Token>如果使用
MONGODB-AWSauthentication mechanism连接到 MongoDB Atlas 集群,并且除了 AWS 访问密钥 ID 和私密访问密钥之外还使用会话令牌,则可以在以下情况中指定 AWS 会话令牌:这个字段,
connection string的AWS_SESSION_TOKENauthMechanismProperties参数,或AWS_SESSION_TOKEN环境变量。
请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。
仅在使用
MONGODB-AWSauthentication mechanism时有效。
--bypassDocumentValidation启用
mongorestore以便在操作过程中绕过文档验证。这样就可以插入不符合验证要求的文档。
--collection=<collection>, -c=<collection>重要
从目录或存档文件恢复时,不建议使用
--db和--collection选项。要从存档或目录恢复特定数据库或集合,请参阅--nsInclude。指定从 BSON 文件恢复数据时
mongorestore将数据恢复到其中的目标集合的名称。 如果您不指定--collection,则mongorestore将从输入文件名中获取集合名称。 如果输入文件包含扩展名,MongoDB 将从集合名称中省略文件的扩展名。mongorestore --db=reporting --collection=employeesalaries dump/test/salaries.bson
--compressors=<string>指定
mongodump用于mongorestore客户端与 MongoDB 服务器之间网络通信的压缩算法。您可为--compressors选项使用以下一个或多个值:snappyzlibzstd
如果指定多种压缩算法,
mongorestore将使用MongoDB 部署支持的列表中的第一个算法。有关压缩程序的更多信息,请参阅 Go 驱动程序网络压缩文档。
--config=<filename>100.3.0版本新增。:
指定 YAML 配置文件的完整路径,该文件包含以下
mongorestore选项的敏感值:除通过密码提示来指定密码之外,这是为
mongorestore指定密码的另一推荐方法。您可以在文件中使用任何参数的组合。配置文件采用以下形式:
password: <password> uri: mongodb://mongodb0.example.com:27017 sslPEMKeyPassword: <password> 如果您指定了
password选项但未指定uri,则可以使用mongorestore命令行选项指定连接字符串的其他组件,例如--username和--host。请务必使用相应的文件系统权限保护此文件。
重要
使用
--config选项时,请注意以下限制和行为:如果您提供
password字段,并在uri字段中提供一个与密码冲突的连接字符串,则mongorestore会抛出错误。如果您使用
--config指定配置文件,并使用--password、--uri或--sslPEMKeyPasswordmongorestore命令行选项,则命令行选项将覆盖相应的配置文件选项。
--convertLegacyIndexes100.0.0版本新增。:
删除相应的
mongodump输出中指定的任何无效索引选项,并重写所有旧版索引键值以使用有效值。无效索引选项 是为索引指定的任何选项,但未列为 命令的 有效字段
createIndexes。例如,name和collation有效,但任意custom_field无效。 指定--convertLegacyIndexes后,将删除所有找到的无效索引选项。传统索引键值是不再支持的索引类型的任何值。 例如,
1和-1是有效的索引键值,但0或空string是旧值。 指定--convertLegacyIndexes后,找到的任何旧索引键值都将被重写为1。 非空string值不会被替换。
如果不指定
--convertLegacyIndexes选项,则无效索引选项或传统索引键值的存在可能会导致索引构建失败。如果将
--noIndexRestore选项指定为mongorestore,则忽略--convertLegacyIndexes选项。
--db=<database>, -d=<database>重要
从目录或存档文件恢复时,不建议使用
--db和--collection选项。要从存档或目录恢复特定数据库或集合,请参阅--nsInclude。指定从BSON 文件恢复时,
mongorestore将数据恢复到其中 的目标数据库。如果该数据库不存在,mongorestore将创建该数据库。例如,以下示例将salaries集合恢复到reporting数据库中。mongorestore --db=reporting dump/test/salaries.bson 如果不指定
--db,mongorestore将从数据文件中读取数据库名称。或者也可以直接在
URI connection string中指定数据库。在提供连接字符串的同时使用--db并指定冲突信息将导致错误。
--dir=string指定转储目录。
您不能同时将
--dir选项和<path>参数(也指定转储目录)指定为mongorestore。不能将
--archive选项与--dir选项一起使用。
--drop从转储的备份中恢复集合之前,请从目标数据库中删除集合。
--drop不会删除不在备份中的集合。当恢复包括
admin数据库时,mongorestore和--drop会删除所有用户档案,并将其替换为转储文件中定义的用户。 因此,在启用了authorization的系统中,mongorestore必须能够对现有用户和转储文件中定义的用户进行身份验证。 如果mongorestore无法对转储文件中定义的用户进行身份验证,恢复进程就会失败,从而产生空数据库。如果在恢复过程中删除并重新创建集合,则新创建的集合具有不同的 UUID,除非
--drop与--preserveUUID一起使用。
--fixDottedHashIndex在目标数据库上将虚线字段上的所有哈希索引创建为单字段升序索引。
--gssapiHostName=<hostname>使用 GSSAPI/Kerberos 指定服务的主机名。仅当机器的主机名与 DNS 解析的主机名不匹配时才需要。
此选项仅在 MongoDB Enterprise 中可用。
--gssapiServiceName=<serviceName>使用 GSSAPI/Kerberos 指定服务名称。仅当服务未使用默认名称
mongodb时才需要。此选项仅在 MongoDB Enterprise 中可用。
--gzip从
mongodump --gzip创建的压缩文件或数据流中恢复。要从包含压缩文件的转储目录恢复,请运行带有
--gzip选项的mongorestore。要从压缩的存档文件中恢复,请运行带有
mongorestore--gzip和 选项的--archive。
--host=<hostname><:port>, -h=<hostname><:port>默认:localhost:27017
指定 MongoDB 部署的可解析主机名。默认情况下,
mongorestore尝试连接到在本地主机端口号27017上运行的 MongoDB 实例。要连接到副本集,请指定
replSetName和副本集成员的种子列表,如下所示:--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> 指定副本集列表格式时,
mongorestore始终连接到主节点。还可以通过仅指定该成员的主机和端口来连接至副本集的任何单个成员:
--host=<hostname1><:port> 如果您使用 IPv6 并采用
<address>:<port>格式,则须将地址与端口的组合部分用方括号括起(即[<address>])。或者,也可直接在
URI connection string中指定主机名。在使用--host的同时提供连接字符串并指定冲突信息将导致错误。
--maintainInsertionOrder默认:false
如果已指定,
mongorestore则会按照这些文档在输入源中出现的顺序将其插入。也就是说,批量写入批处理顺序和批处理中的文档顺序都将保持不变。指定
--maintainInsertionOrder还会启用--stopOnError并将numInsertionWorkersPerCollection设置为 1。如果未指定,
mongorestore则可能会按任意顺序执行插入。
--noIndexRestore防止
mongorestore按照相应mongodump输出中的指定方式来恢复和构建索引。
--nsExclude=<namespace pattern>指定命名空间模式(例如
"test.myCollection"、"reporting.*"、"dept*.bar")从恢复中排除匹配的命名空间。 在该模式中,您可以使用星号*作为通配符。 有关通配符模式的示例,请参阅使用通配符恢复集合。您可以多次指定
--nsExclude以排除多个命名空间模式。如果同时指定
--nsExclude和--nsInclude,则--nsExclude指定的模式优先。 示例,如果同时指定--nsExclude="prod.*"和--nsInclude="prod.trips",则不会恢复prod命名空间中的任何集合。
--nsFrom=<namespace pattern>与
--nsTo一起使用可在恢复操作期间重命名命名空间。--nsFrom指定转储文件中的集合,而--nsTo指定应在还原的数据库中使用的名称。--nsFrom接受命名空间模式作为其参数。 命名空间模式允许--nsFrom引用与指定模式匹配的任何命名空间。mongorestore匹配命名空间模式的最小有效出现次数。对于简单的替换,使用星号 (
*) 作为通配符。用反斜杠转义所有字面星号和反斜杠。替换与匹配线性对应:--nsFrom中的每个星号必须对应于--nsTo中的一个星号,并且--nsFrom中的第一个星号与nsTo中的第一个星号匹配。对于更复杂的替换,请使用美元符号来界定要在替换中使用的“通配符”变量。 在恢复期间更改集合命名空间提供了使用以美元符号分隔的通配符进行复杂替换的示例。
与星号的替换不同,美元符号分隔的通配符的替换不需要是线性的。
--nsInclude=<namespace pattern>指定命名空间模式(例如
"test.myCollection"、"reporting.*"、"dept*.bar")仅恢复与模式匹配的命名空间。 在该模式中,您可以使用星号*作为通配符。 有关通配符模式的示例,请参阅使用通配符恢复集合。您可以多次指定
--nsInclude以包含多个命名空间模式。如果源目录或文件(即恢复数据的目录/文件) 不包含与命名空间模式匹配的数据文件, 则不会恢复任何数据。
对于包含非 ASCII 字符的集合名称,
mongodump会用百分比编码名称输出相应的文件名称。但是要恢复这些集合,请勿使用编码名称。相反,应使用包含非 ASCII 字符的命名空间。例如,如果转储目录包含
dump/test/caf%C3%A9s.bson,请指定--nsInclude "test.cafés"。如果同时指定
--nsExclude和--nsInclude,则--nsExclude指定的模式优先。 示例,如果同时指定--nsExclude="prod.*"和--nsInclude="prod.trips",则不会恢复prod命名空间中的任何集合。
--nsTo=<namespace pattern>与
--nsFrom一起使用可在恢复操作期间重命名命名空间。--nsTo指定要在恢复的数据库中使用的新集合名称,而--nsFrom指定转储文件中的名称。--nsTo接受命名空间模式作为其参数。 命名空间模式允许--nsTo引用与指定模式匹配的任何命名空间。mongorestore匹配命名空间模式的最小有效出现次数。对于简单的替换,使用星号 (
*) 作为通配符。用反斜杠转义所有字面星号和反斜杠。替换与匹配线性对应:--nsFrom中的每个星号必须对应于--nsTo中的一个星号,并且--nsFrom中的第一个星号与nsTo中的第一个星号匹配。对于更复杂的替换,请使用美元符号来界定要在替换中使用的“通配符”变量。 在恢复期间更改集合命名空间提供了使用以美元符号分隔的通配符进行复杂替换的示例。
与星号的替换不同,美元符号分隔的通配符的替换不需要是线性的。
--numParallelCollections=<int>, -j=<int>默认值:4
mongorestore应并行恢复的集合数量。如果在恢复单个集合时指定
-j,则-j会映射到--numInsertionWorkersPerCollection选项,而不是--numParallelCollections。
--objcheck自版本 9.0 起已弃用。:
强制
mongorestore在收到客户端的所有请求后进行验证,以确保客户端永远不会将无效文档插入到数据库中。 对于子文档嵌套程度较高的对象,--objcheck对性能的影响很小。从MongoDB 9.0 开始,此选项对服务器行为没有影响。服务器始终验证BSON文档。
--oplogFile=<path>指定包含用于恢复的 oplog 数据的 oplog 文件的路径。 与
--oplogReplay一起使用。如果指定
--oplogFile且转储目录的顶层存在oplog.bson文件,则mongorestore会返回错误。警告
请谨慎使用
oplogFile:手动指定要应用的 oplog 条目可能会导致还原数据损坏和不一致。
--oplogLimit=<timestamp>防止
mongorestore应用时间戳晚于或等于<timestamp>的oplog条目。 以<time_t>:<ordinal>的形式指定<timestamp>值,其中<time_t>是自 UNIX 纪元以来的秒数,<ordinal>表示在指定秒内发生的 oplog 中的操作计数器。警告
请谨慎使用
oplogLimit:手动指定要应用的 oplog 条目可能会导致还原数据损坏和不一致。必须将
--oplogLimit与--oplogReplay选项结合使用。
--oplogReplay恢复数据库转储后,从
oplog.bson文件重放 oplog 条目。要在恢复中应用
oplog.bson文件中的 oplog 条目,请使用mongorestore --oplogReplay。您可以将mongodump --oplog与mongorestore --oplogReplay一起使用,以确保数据是最新的,并且包含转储操作期间发生的所有写入。mongorestore会在以下位置搜索 bson 文件的任何有效来源:转储目录的顶层,比如使用
mongodump --oplog创建的转储。<dump-directory>/local/oplog.rs.bson,例如将local数据库中的oplog.rs集合转储到属于副本集成员的mongod上。
如果转储目录的顶层存在
oplog.bson文件,且路径由--oplogFile指定,则mongorestore将返回错误。如果转储目录的顶层有
oplog.bson文件,则mongorestore会将该文件恢复为 oplog。如果dump/local目录中还有 bson 文件,mongorestore会将该文件恢复为普通集合。如果您使用
--oplogFile指定 oplog 文件,mongorestore会将该文件恢复为 oplog。 如果dump/local目录中还有BSON文件,mongorestore会将其恢复为普通集合。oplog 重放输出中的以下消息显示 oplog 重放之前插入的数量。 它不包括重放期间 执行的插入。
0 document(s) restored successfully. 0 document(s) failed to restore. 有关
--oplogReplay的示例,请参阅使用 Oplog 文件还原数据。注意
将
mongorestore与--oplogReplay一起使用来恢复副本集时,必须恢复使用 创建的 副本集mongodump --oplog成员的完整转储。如果使用以下任一选项来限制要恢复的数据,则mongorestore和--oplogReplay都会失败:警告
mongorestore无法重放跨越时间序列格式转换的oplog范围。当您在MongoDB.x8 和MongoDB 之间更改特征兼容性版本(FCV )9.0 时,服务器会执行此转换。要学习;了解如何跨转换恢复,请参阅跨时间序列格式转换的 Oplog 重放。
--password=<password>, -p=<password>指定密码,用于对使用身份验证的 MongoDB 数据库进行身份验证。与
--username和--authenticationDatabase选项结合使用。如要提示用户输入密码,可使用不带
--password的--username选项,或指定空字符串作为--password值,如--password=""。或者,也可以直接在
URI connection string中指定密码。在提供连接字符串的同时使用--password并指定冲突信息将导致错误。如果使用
MONGODB-AWSauthentication mechanism连接到 MongoDB Atlas 集群,您可以在以下位置指定您的 AWS 秘密访问密钥:这个字段,
AWS_SECRET_ACCESS_KEY环境变量。
请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。
警告
在某些系统上,直接使用
--password选项提供的密码,可能会被其他用户调用的系统状态程序(如ps)探测到。请考虑:省略
--password选项以接收交互式密码提示,或使用
--config选项指定包含密码的配置文件。
--port=<port>默认值:27017
指定 MongoDB 实例侦听客户端连接的 TCP 端口。
或者,也可以直接在
URI connection string中指定端口。在提供连接字符串的同时使用--port并指定冲突信息将导致错误。
--preserveUUID已恢复的集合使用恢复数据中的 UUID, 而不会为在恢复过程中删除并重新创建的集合创建新的 UUID。
要使用
--preserveUUID,还必须包含--drop选项。
--quiet在尝试限制输出量的安静模式下运行
mongorestore。该选项会抑制:
errors
数据库命令输出
复制活动
连接接受事件
连接关闭事件
--restoreDbUsersAndRoles恢复给定数据库的用户和角色定义。有关更多信息,请参阅 system.roles 集合和 system.users 集合。
注意
您只能对使用
--dumpDbUsersAndRoles选项创建的数据库转储使用--restoreDbUsersAndRoles。通过指定
--db admin来恢复admin数据库会自动恢复所有用户和角色。您无法对admin数据库使用--restoreDbUsersAndRoles,而尝试这样做则会导致错误。
--ssl支持链接到启用 TLS/SSL 支持的
mongod或mongos。或者,也可以直接在
URI connection string中配置 TLS/SSL 支持。在提供连接字符串的同时使用--ssl并指定冲突信息将导致错误。有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslAllowInvalidCertificates绕过对服务器证书的验证检查并允许使用无效证书。 使用
allowInvalidCertificates设置时,MongoDB 将使用无效证书记录为警告。警告
或者,也可以直接在
URI connection string中禁用证书验证。在提供连接字符串的同时使用--sslAllowInvalidCertificates并指定冲突信息将导致错误。有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslAllowInvalidHostnames禁用 TLS/SSL 证书中的主机名验证。即使证书中的主机名与指定的主机名不匹配,也支持
mongorestore连接到 MongoDB 实例。或者,也可以直接在
URI connection string中禁用主机名验证。在提供连接字符串的同时使用--sslAllowInvalidHostnames并指定冲突信息将导致错误。有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslCAFile=<filename>指定包含来自证书颁发机构的根证书链的
.pem文件。使用相对或绝对路径指定.pem文件的文件名。或者,也可以直接在
URI connection string中指定.pem文件。在提供连接字符串的同时使用--sslCAFile并指定冲突信息将导致错误。有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslCRLFile=<filename>指定包含证书吊销列表的
.pem文件。使用相对或绝对路径指定.pem文件的文件名。有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslPEMKeyFile=<filename>指定同时包含 TLS/SSL 证书和密钥的
.pem文件。使用相对或绝对路径指定.pem文件的文件名。使用
--ssl选项连接到已启用CAFile且未启用allowConnectionsWithoutCertificates的mongod或mongos时,需要使用此选项。或者,也可以直接在
URI connection string中指定.pem文件。在提供连接字符串的同时使用--sslPEMKeyFile并指定冲突信息将导致错误。有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslPEMKeyPassword=<value>指定解密证书密钥文件的密码(即
--sslPEMKeyFile)。仅当证书密钥文件已加密时才能使用--sslPEMKeyPassword选项。在所有情况下,mongorestore都会对所有日志记录和报告输出中的密码进行脱敏。如果 PEM 文件中的私钥已加密,并且您未指定
--sslPEMKeyPassword选项,mongorestore将提示输入密码。请参阅 TLS/SSL 证书密码。或者,也可以直接在
URI connection string中指定密码。在提供连接字符串的同时使用--sslPEMKeyPassword并指定冲突信息将导致错误。有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
警告
在某些系统上,直接使用
--sslPEMKeyPassword选项提供的密码,可能会被其他用户调用的系统状态程序(如ps)探测到。可以考虑使用--config选项,指定一个包含密码的配置文件。
--stopOnError出误时强制
mongorestore停止恢复。默认情况下,
mongorestore会在遇到重复键和文档验证错误时继续。 为确保程序在出现这些错误时停止运行,请指定--stopOnError。
--uri=<connectionString>指定 MongoDB 部署的可解析 URI 连接字符串(用引号括起):
--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" 从
mongorestore的100.0版本开始,也可以将连接字符串作为位置参数提供,而无需使用--uri选项:mongorestore mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 作为位置参数,可以在命令行上的任何位置指定连接字符串,前提是它以
mongodb://或mongodb+srv://开头。例如:mongorestore --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl 只能提供一个连接字符串。无论是使用
--uri选项还是作为位置参数,尝试纳入多个连接字符串都会导致错误。有关连接字符串的组件信息,请参阅连接字符串 URI 格式文档。
注意
connection string中的某些组件也可以使用各自的显式命令行选项来指定,例如--username和--password。在提供连接字符串的同时,使用显式选项并指定冲突信息会导致错误。注意
如果在Ubuntu 上使用
mongorestore18.04 ,则在使用带有 选项的cannot unmarshal DNSSRV 连接字符串(采用mongodb+srv://形式)时,您可能会遇到--uri错误消息。如果是这样,请改用以下选项之一:--uri带有非 SRV连接字符串的 选项(采用mongodb://形式)--host选项指定直接连接的主机
--username=<username>, -u=<username>指定用户名,用于对使用身份验证的 MongoDB 数据库进行身份验证。与
--password和--authenticationDatabase选项配合使用。或者,也可直接在
URI connection string中指定用户名。在使用--username的同时提供连接字符串并指定冲突信息将导致错误。如果使用
MONGODB-AWSauthentication mechanism连接到 MongoDB Atlas 集群,您可以在以下位置指定您的 AWS 访问密钥 ID:这个字段,
AWS_ACCESS_KEY_ID环境变量。
请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。
--writeConcern=<document>默认:多数
为
mongorestore执行的每个写入操作指定写关注。--writeConcern="{w:'majority'}" 如果写关注也包含在
--uri connection string中,则命令行--writeConcern将覆盖 URI string中指定的写关注。