Docs 菜单
Docs 主页
/
MongoDB 数据库工具

mongorestore

在此页面上

  • Synopsis
  • 语法
  • 选项
  • 了解详情

本文档适用于 mongorestore100.10.0 版本。

mongorestore 程序会将数据从 mongodump 创建的二进制数据库转储或标准输入加载到 mongodmongos 实例中。

您可以将从 mongodump 生成的 BSON 文件恢复到与源部署运行相同或更新版本的 MongoDB 部署中。然而,在较新版本的部署中恢复文件并不是升级部署的推荐方法。要了解如何升级部署,请参阅升级文档

从系统命令行运行 mongorestore,而非 mongo shell。

提示

另请参阅:

mongodump,而它提供了相应的二进制数据导出功能。

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

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

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

mongorestore 事务语法:

mongorestore <options> <connection-string> <directory or file to restore>

例如,要从dump目录恢复到在端口27017上运行的本地mongod实例:

mongorestore dump/

mongorestoredump/ 目录恢复时,它会根据需要创建数据库和集合并记录其进度:

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/ 目录中的相应数据文件恢复单个集合:

mongorestore --nsInclude=test.purchaseorders dump/

如果 dump/ 目录不包含指定命名空间的相应数据文件,则不会恢复任何数据。例如,以下指定的集合命名空间在 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 示例。

--help

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

--verbose, -v

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

--quiet

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

该选项会抑制:

  • 数据库命令输出

  • 复制活动

  • 连接接受事件

  • 连接关闭事件

--version

返回 mongorestore 版本号。

--config=<filename>

版本 100.3.0 中的新增内容

指定包含以下 mongorestore 选项的敏感值的 YAML 配置文件的完整路径:

除通过密码提示来指定密码之外,这是为 mongorestore 指定密码的另一推荐方法。

配置文件采用以下形式:

password: <password>
uri: mongodb://mongodb0.example.com:27017
sslPEMKeyPassword: <password>

password: 字段指定密码并在 uri: 字段中提供包含冲突密码的连接字符串将导致错误。

请务必使用相应的文件系统权限保护此文件。

注意

如果使用 --config 来指定配置文件,并使用 --password--uri--sslPEMKeyPassword 选项来 mongorestore,那么每个命令行选项均会覆盖其在配置文件中的相应选项。

--uri=<connectionString>

指定 MongoDB 部署的可解析 URI 连接字符串(用引号括起):

--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"

mongorestore100.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 18.04 上使用 mongorestore,则在使用带 --uri 选项的 SRV 连接字符串(采用 mongodb+srv:// 格式)时,可能会出现“cannot unmarshal DNS”错误消息。如果是这样,请改用以下选项之一:

警告

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

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

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

--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 并指定冲突信息将导致错误。

--port=<port>

默认值:27017

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

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

--ssl

支持链接到启用 TLS/SSL 支持的 mongodmongos

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

有关 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 配置。

--sslPEMKeyFile=<filename>

指定同时包含 TLS/SSL 证书和密钥的 .pem 文件。使用相对或绝对路径指定 .pem 文件的文件名。

使用--ssl选项连接到已启用CAFile且未启用allowConnectionsWithoutCertificatesmongodmongos时,需要使用此选项。

或者,也可以直接在 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 选项,指定一个包含密码的配置文件。

--sslCRLFile=<filename>

指定包含证书吊销列表的 .pem 文件。使用相对或绝对路径指定 .pem 文件的文件名。

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

--sslAllowInvalidCertificates

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

警告

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

在未验证服务器证书的情况下,连接到 mongodmongos 实例存在潜在的安全风险。如果只需禁用 TLS/SSL 证书中的主机名验证,请参阅 --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 配置。

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

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

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

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

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

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

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

如要提示用户输入密码,可使用不带 --password--username 选项,或指定空字符串作为 --password 值,如 --password=""

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

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

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

警告

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

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

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

--awsSessionToken=<AWS Session Token>

如果使用 MONGODB-AWSauthentication mechanism 连接到 MongoDB Atlas 集群,并且除了 AWS 访问密钥 ID 和私密访问密钥之外还使用会话令牌,则可以在以下情况中指定 AWS 会话令牌:

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

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

--authenticationDatabase=<dbname>

指定已创建指定 --username 的身份验证数据库。请参阅身份验证数据库

如果使用的是 GSSAPI (Kerberos)、PLAIN (LDAP SASL) 或 MONGODB-AWS authentication mechanisms,则须将 --authenticationDatabase 设为 $external

或者,也可以直接在 URI connection string 中指定身份验证数据库。在提供连接字符串的同时使用 --authenticationDatabase 并指定冲突信息将导致错误。

--authenticationMechanism=<name>

默认值:SCRAM-SHA-1

指定 mongorestore 实例用来向 mongodmongos 进行身份验证的机制。

在版本 100.1.0 中进行了更改:从版本 100.1.0 开始,mongorestore 在连接到 MongoDB Atlas 集群时增加了对 MONGODB-AWS 身份验证机制的支持。

说明

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 并指定冲突信息将导致错误。

--gssapiServiceName=<serviceName>

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

此选项仅在 MongoDB Enterprise 中可用。

--gssapiHostName=<hostname>

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

此选项仅在 MongoDB Enterprise 中可用。

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

指定从BSON 文件恢复时,mongorestore 将数据恢复到其中 的目标数据库。如果该数据库不存在,mongorestore 将创建该数据库。例如,以下示例将 salaries 集合恢复到 reporting 数据库中。

mongorestore --db=reporting dump/test/salaries.bson

如果不指定--dbmongorestore将从数据文件中读取数据库名称。

从目录或存档文件恢复时,不建议使用--db--collection选项。 相反,要从存档或目录中恢复,请参阅--nsInclude

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

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

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

mongorestore --db=reporting --collection=employeesalaries dump/test/salaries.bson

从目录或存档文件恢复时,不建议使用--db--collection选项。 相反,要从存档或目录中恢复,请参阅--nsInclude

--nsExclude=<namespace pattern>

指定命名空间模式(例如 "test.myCollection""reporting.*""dept*.bar" )从恢复中排除匹配的命名空间。 在该模式中,您可以使用星号*作为通配符。 有关通配符模式的示例,请参阅使用通配符恢复集合。

您可以多次指定--nsExclude以排除多个命名空间模式。

--nsInclude=<namespace pattern>

指定命名空间模式(例如 "test.myCollection""reporting.*""dept*.bar" )仅恢复与模式匹配的命名空间。 在该模式中,您可以使用星号*作为通配符。 有关通配符模式的示例,请参阅使用通配符恢复集合。

您可以多次指定--nsInclude以包含多个命名空间模式。

如果源目录或文件(即恢复数据的目录/文件) 不包含与命名空间模式匹配的数据文件, 则不会恢复任何数据。

对于包含非 ASCII 字符的集合名称,mongodump 会用百分比编码名称输出相应的文件名称。但是要恢复这些集合,请勿使用编码名称。相反,应使用包含非 ASCII 字符的命名空间。

例如,如果转储目录包含dump/test/caf%C3%A9s.bson,请指定--nsInclude "test.cafés"

--nsFrom=<namespace pattern>

--nsTo一起使用可在恢复操作期间重命名命名空间--nsFrom指定转储文件中的集合,而--nsTo指定应在还原的数据库中使用的名称。

--nsFrom接受命名空间模式作为其参数。 命名空间模式允许--nsFrom引用与指定模式匹配的任何命名空间。 mongorestore匹配命名空间模式的最小有效出现次数。

对于简单的替换,使用星号 (*) 作为通配符。用反斜杠转义所有字面星号和反斜杠。替换与匹配线性对应:--nsFrom 中的每个星号必须对应于 --nsTo 中的一个星号,并且 --nsFrom 中的第一个星号与 nsTo 中的第一个星号匹配。

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

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

--nsTo=<namespace pattern>

--nsFrom一起使用可在恢复操作期间重命名命名空间--nsTo指定要在恢复的数据库中使用的新集合名称,而--nsFrom指定转储文件中的名称。

--nsTo接受命名空间模式作为其参数。 命名空间模式允许--nsTo引用与指定模式匹配的任何命名空间。 mongorestore匹配命名空间模式的最小有效出现次数。

对于简单的替换,使用星号 (*) 作为通配符。用反斜杠转义所有字面星号和反斜杠。替换与匹配线性对应:--nsFrom 中的每个星号必须对应于 --nsTo 中的一个星号,并且 --nsFrom 中的第一个星号与 nsTo 中的第一个星号匹配。

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

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

--objcheck

强制mongorestore在收到客户端的所有请求后进行验证,以确保客户端永远不会将无效文档插入到数据库中。 对于子文档嵌套程度较高的对象, --objcheck对性能的影响很小。

--drop

从转储的备份中恢复集合之前,请从目标数据库中删除集合。 --drop不会删除不在备份中的集合。

当恢复包括admin数据库时, mongorestore--drop会删除所有用户档案,并将其替换为转储文件中定义的用户。 因此,在启用了authorization的系统中, mongorestore必须能够对现有用户转储文件中定义的用户进行身份验证。 如果mongorestore无法对转储文件中定义的用户进行身份验证,恢复进程就会失败,从而产生空数据库。

如果在恢复过程中删除并重新创建集合,则新创建的集合具有不同的 UUID,除非--drop--preserveUUID一起使用。

--preserveUUID

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

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

--dryRun

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

--oplogReplay

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

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

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

如果转储目录的顶层存在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都会失败:

--oplogLimit=<timestamp>

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

警告

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

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

--oplogFile=<path>

指定包含用于恢复的 oplog 数据的 oplog 文件的路径。 与--oplogReplay一起使用。

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

警告

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

--convertLegacyIndexes

100.0.0 版本新增

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

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

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

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

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

--keepIndexVersion

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

--noIndexRestore

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

--fixDottedHashIndex

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

--noOptionsRestore

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

--restoreDbUsersAndRoles

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

注意

--restoreDbUsersAndRoles如果为admin 选项指定--db 数据库,则无法使用 } 选项,尝试这样做会导致错误。通过将--db admin指定为mongorestore来恢复admin数据库已恢复所有用户和角色。

--writeConcern=<document>

默认:多数

mongorestore执行的每个写入操作指定写关注

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

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

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

--maintainInsertionOrder

默认:false

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

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

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

--numParallelCollections=<int>, -j=<int>

默认值:4

mongorestore 应并行恢复的集合数量。

如果在恢复单个集合时指定-j ,则-j会映射到--numInsertionWorkersPerCollection选项,而不是--numParallelCollections

--numInsertionWorkersPerCollection=<int>

默认值:1

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

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

--stopOnError

出误时强制 mongorestore 停止恢复。

默认情况下, mongorestore会在遇到重复键和文档验证错误时继续。 为确保程序在出现这些错误时停止运行,请指定--stopOnError

--bypassDocumentValidation

启用 mongorestore 可在操作过程中绕过文档验证。 这样就可以插入不符合验证要求的文件。如果要恢复启用了可查询加密功能的集合,则需要使用此选项。

--gzip

从以下命令创建的压缩文件或数据流中恢复: mongodump --gzip

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

要从压缩的存档文件中恢复,请运行带有mongorestore --gzip和 选项的--archive

注意

您可以使用--nsFrom--nsTo选项以及--gzip选项来更改要恢复的集合的命名空间。

--archive=<file>

从指定的存档文件进行恢复;或者,如果未指定此文件,则从标准输入 (stdin) 恢复:

  • 要从存档文件恢复,请运行带 --archive 选项和存档文件名的 mongorestore

  • 要从标准输入恢复,请运行带 --archive 选项的 mongorestore,但忽略 文件名。

注意

  • 不能将--archive选项与--dir选项一起使用。

  • 如果将--archive选项与<path>参数一起使用, mongorestore将忽略<path>参数。

  • mongorestore 仍然支持位置 - 参数以从标准输入恢复单个集合。

<path>

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

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

--dir=string

指定转储目录。

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

  • 不能将 --archive选项与 --dir 选项一起使用。

后退

示例