对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

mongorestore

本文档适用于 mongorestore 的 100.19.1 版本。

mongorestore 程序会将数据从 mongodump 创建的二进制数据库转储或标准输入加载到 mongod 或 mongos 实例中。mongorestore 会在安装 MongoDB 数据库工具时安装。

您可以使用 Database Tools 从自托管部署迁移到 MongoDB Atlas。MongoDB Atlas 是用于云中 MongoDB 部署的完全托管服务。要了解详情,请参阅使用 mongorestore 播种。

要了解迁移到 MongoDB Atlas 的所有方法,请参阅迁移或导入数据。

您可以将从 mongodump 生成的 BSON 文件恢复到与源部署运行相同主版本或特征兼容性版本的 MongoDB 部署中。

mongorestore 具有以下行为和限制:

  • 您必须从系统命令行而非 MongoDB Shell 运行 mongorestore。

  • MongoDB 不支持为同一集合同时运行多个 mongorestore 程序。

  • 不能将 mongorestore 与使用Queryable Encryption或客户端字段级加密(CSFLE) 的集合一起使用。

在运行 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 的标准输入。

重要

--authenticationDatabase=<dbname>

指定已创建指定 --username 的身份验证数据库。 结合 --username 和 --password 选项使用。

有关身份验证数据库的更多信息,请参阅身份验证数据库。

如果您使用 GSSAPI (Kerberos)、PLAIN (LDAP SASL) 或 MONGODB-AWS authentication 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 身份验证机制的支持。

值
说明

5802使用 SHA-1 哈希函数的 RFC 标准 Salted 挑战响应身份验证机制。

7677使用 SHA-256 哈希函数的 RFC 标准 Salted 挑战响应身份验证机制。

需将 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 Atlas 群集,并且除了MONGODB-AWSauthentication mechanism AWS访问权限密钥ID和秘密访问权限密钥之外还使用会话令牌,则可以在以下位置指定 AWS 会话令牌:

请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。

仅在使用 MONGODB-AWS authentication mechanism 时有效。

--bypassDocumentValidation

启用 mongorestore 以便在操作过程中绕过文档验证。这样就可以插入不符合验证要求的文档。

--collection=<collection>, -c=<collection>

指定mongorestore 从BSON文件恢复数据时要将数据恢复到其中的目标集合的名称。如果不指定--collection ,则mongorestore 将从输入文件名中获取集合名称。如果输入文件包含扩展名, MongoDB将从集合名称中文件的扩展名。

mongorestore --db=reporting --collection=employeesalaries dump/test/salaries.bson
--compressors=<string>

指定 mongodump 用于 mongorestore 客户端与 MongoDB 服务器之间网络通信的压缩算法。您可为 --compressors 选项使用以下一个或多个值:

  • snappy

  • zlib

  • zstd

如果指定多种压缩算法,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 或 --sslPEMKeyPassword mongorestore命令行选项,则命令行选项将覆盖相应的配置文件选项。

--convertLegacyIndexes

100.0.0版本新增。

删除相应的 mongodump 输出中指定的任何无效索引选项,并重写所有旧版索引键值以使用有效值。

  • 无效索引选项是为索引指定的任何选项,但未列为 createIndexes命令的有效字段。示例,name 和collation 有效,但任意custom_field 无效。指定--convertLegacyIndexes 后,将删除所有找到的无效索引选项。

  • 传统索引键值是不再支持的索引类型的任何值。示例,1 和-1 是有效的索引键值,但0 或空字符串是旧值。指定--convertLegacyIndexes 后,找到的任何旧索引键值都将被重写为1 。非空字符串值不会被替换。

如果不指定 --convertLegacyIndexes 选项,则无效索引选项或传统索引键值的存在可能会导致索引构建失败。

如果将--noIndexRestore 选项指定为mongorestore ,则忽略--convertLegacyIndexes 选项。

--db=<database>, -d=<database>

指定从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 一起使用。

--dryRun

运行 mongorestore,而不实际导入任何数据,将返回 mongorestore 摘要信息。与 --verbose 一起使用可生成更详细的摘要信息。

--fixDottedHashIndex

在目标数据库上将虚线字段上的所有哈希索引创建为单字段升序索引。

--gssapiHostName=<hostname>

使用 GSSAPI/Kerberos 指定服务的主机名。仅当机器的主机名与 DNS 解析的主机名不匹配时才需要。

此选项仅在 MongoDB Enterprise 中可用。

--gssapiServiceName=<serviceName>

使用 GSSAPI/ Kerberos指定服务名称。仅当服务不使用默认名称 mongodb时才需要。

此选项仅在 MongoDB Enterprise 中可用。

--gzip

从 mongodump --gzip 创建的压缩文件或数据流中恢复。

要从包含压缩文件的转储目录恢复,请运行带有 --gzip 选项的 mongorestore。

要从压缩的存档文件中恢复,使用 --gzip 和 --archive 选项运行 mongorestore。

注意

您可以将--nsFrom 和--nsTo 选项与--gzip 选项一起使用,更改要恢复的集合的命名空间空间。

--help

返回有关 mongorestore 的选项和使用的信息。

--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 的同时提供连接字符串并指定冲突信息将导致错误。

--keepIndexVersion

防止 mongorestore 在恢复过程中将索引升级到最新版本。

--maintainInsertionOrder

默认:false

如果已指定,mongorestore 则会按照这些文档在输入源中出现的顺序将其插入。也就是说,批量写入批处理顺序和批处理中的文档顺序都将保持不变。

指定--maintainInsertionOrder 还会启用--stopOnError 并将numInsertionWorkersPerCollection 设置为1 。

如果未指定,mongorestore 则可能会按任意顺序执行插入。

--noIndexRestore

防止 mongorestore 按照相应 mongodump 输出中的指定方式来恢复和构建索引。

--noOptionsRestore

防止mongorestore 在恢复的集合上设置集合选项,例如collMod 数据库命令指定的选项。

--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 中的第一个星号匹配。

对于更复杂的替换,请使用美元符号来界定要在替换中使用的“通配符”变量。 在恢复期间更改集合命名空间提供了使用以美元符号分隔的通配符进行复杂替换的示例。

与星号的替换不同,美元符号分隔的通配符的替换不需要是线性的。

--numInsertionWorkersPerCollection=<int>

默认值:1

指定每个集合要同时运行的插入工作线程数。

对于大型导入,增加插入工作线程的数量可以提高导入的速度。

--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防止 应用时间戳晚于或等于 的oplog条目。以<timestamp> 的形式指定<timestamp> 值,其中<time_t>:<ordinal> <time_t>是自 UNIX 纪元以来的秒数,<ordinal> 表示在指定秒内发生的oplog中的操作计数器。

警告

请谨慎使用 oplogLimit:手动指定要应用的 oplog 条目可能会导致还原数据损坏和不一致。

您必须将--oplogLimit 与--oplogReplay 选项结合使用。

--oplogReplay

恢复数据库转储后,从 oplog.bson文件重放oplog条目。

注意

分片集群不支持oplogReplay 选项。

要在恢复中应用 oplog.bson 文件中的 oplog 条目,请使用mongorestore --oplogReplay。您可以将 mongodump --oplog 与 mongorestore --oplogReplay 一起使用,以确保数据是最新的,并且包含转储操作期间发生的所有写入。

mongorestore 会在以下位置搜索 bson 文件的任何有效来源:

oplog.bson如果转储目录的顶层存在 文件,且路径由 --oplogFile指定,则mongorestore 将返回错误。

如果转储目录的顶层有 oplog.bson 文件,则 mongorestore 会将该文件恢复为 oplog。如果 dump/local 目录中还有 bson 文件,mongorestore 会将该文件恢复为普通集合。

如果您使用 指定oplog文件,--oplogFile mongorestore会将该文件恢复为oplog。如果 目录中还有 bsondump/local 文件,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 8.x 和 MongoDB 9.0 之间更改特征兼容性版本 (FCV)时,服务器会执行此转换。要了解如何跨转换进行恢复,请参阅跨时间序列格式转换的 Oplog 重放。

--password=<password>, -p=<password>

指定密码,用于对使用身份验证的 MongoDB--authenticationDatabase--username 数据库进行身份验证。与 和 选项结合使用。

要提示用户输入密码,请传递不带 的 选项,或指定空字符串作为--username --password--password值,如--password="" 所示。

或者,也可以直接在 URI connection string 中指定密码。在提供连接字符串的同时使用 --password 并指定冲突信息将导致错误。

如果使用 连接到MongoDB Atlas MONGODB-AWSauthentication mechanism群集,您可以在以下位置指定 AWS 秘密访问权限密钥:

请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。

警告

在某些系统上,直接使用 --password 选项提供的密码,可能会被其他用户调用的系统状态程序(如 ps)探测到。请考虑:

  • 省略 --password 选项以接收交互式密码提示,或

  • 使用 --config 选项指定包含密码的配置文件。

<path>

要从中恢复数据的目录路径或 BSON 文件名称。

不能同时将 <path> 参数和 --dir 选项(也指定转储目录)指定为 mongorestore。

--port=<port>

默认值:27017

指定 MongoDB 实例侦听客户端连接的 TCP 端口。

或者,也可以直接在 URI connection string 中指定端口。在提供连接字符串的同时使用 --port 并指定冲突信息将导致错误。

--preserveUUID

已恢复的集合使用恢复数据中的 UUID, 而不会为在恢复过程中删除并重新创建的集合创建新的 UUID。

要使用--preserveUUID ,还必须包含--drop 选项。

注意

分片集群不支持preserveUUID 选项。

--quiet

在尝试限制输出量的安静模式下运行 mongorestore。

该选项会抑制:

  • errors

  • 复制活动

  • 连接接受事件

  • 连接关闭事件

--restoreDbUsersAndRoles

恢复给定数据库的用户和角色定义。有关更多信息,请参阅 system.roles 集合和 system.users 集合。

注意

  • 您只能对使用 --dumpDbUsersAndRoles 选项创建的数据库转储使用 --restoreDbUsersAndRoles。

  • admin通过指定 恢复--db admin 数据库会自动恢复所有用户和角色。您不能在--restoreDbUsersAndRoles admin数据库上使用 ,尝试这样做会导致错误。

--ssl

允许连接到已启用 TLS/SSL支持的mongodmongos 或 。

或者,也可以直接在URI connection string 中配置 TLS/SSL 支持。在提供连接字符串的同时使用 --ssl 并指定冲突信息将导致错误。

有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。

--sslAllowInvalidCertificates

绕过对服务器证书的验证检查并允许使用无效证书。使用 设置时,allowInvalidCertificates MongoDB将使用无效证书记录为警告。

警告

尽管可用,但请尽可能避免使用 --sslAllowInvalidCertificates 选项。如果需要使用 --sslAllowInvalidCertificates,请仅在不可能入侵的系统上使用该选项。

mongod在不验证服务器证书的情况下连接到 或 实例存在潜在的安全风险。如果只需禁用 TLS/SSL 证书中的主机名验证,请参阅mongos--sslAllowInvalidHostnames 。

或者,也可以直接在 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]]"

从100.0 的mongorestore 版本开始,也可以将连接字符串作为位置参数提供,而不使用--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 DNS SRV 连接字符串(采用mongodb+srv:// 形式)时,您可能会遇到--uri 错误消息。如果是这样,请改用以下选项之一:

警告

在某些系统上,使用 --uri 选项在连接字符串中提供的密码可能会对其他用户调用的系统状态程序(例如 ps)可见。请考虑:

  • 在连接字符串中省略密码,接收交互式密码提示,或者

  • 使用 --config 选项指定包含密码的配置文件。

--username=<username>, -u=<username>

指定用户名,用于对使用身份验证的MongoDB 数据库进行身份验证。与--password 和--authenticationDatabase 选项结合使用。

或者,也可直接在 URI connection string 中指定用户名。在使用 --username 的同时提供连接字符串并指定冲突信息将导致错误。

如果使用 连接到MongoDB Atlas MONGODB-AWSauthentication mechanism群集,您可以在以下位置指定您的 AWS访问权限密钥ID :

请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。

--verbose, -v

增加标准输出或日志文件中返回的内部报告数量。通过包括多个 -v 选项来提高详细程度,(例如 -vvvvv。)

--version

返回 mongorestore 版本号。

--writeConcern=<document>

默认:多数

为 执行的每个写入操作指定写关注(write concern)。mongorestore

将写关注指定为文档,并使用 w 选项:

--writeConcern="{w:'majority'}"

如果写关注也包含在 --uri connection string 中,则命令行 --writeConcern 将覆盖 URI 字符串中指定的写关注。

给本页内容打分