文档菜单
文档首页
/
MongoDB数据库工具

mongorestore

本页面内容

  • 概述
  • 语法
  • 选项
  • 了解更多

本文档适用于mongorestore的版本100.10.0

mongorestore 程序可以从以下任一来源加载数据:mongodump 创建的二进制数据库转储或标准输入mongodmongos 实例。

您可以将由 mongodump 生成的 BSON 文件恢复到运行与源部署相同主要版本或功能兼容版本的 MongoDB 部署中。

从系统命令行运行 mongorestore,而不是从 mongo 脚本。

提示

另请参阅

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

MongoDB 不支持同时运行多个相同的 mongorestore 程序以对同一集合进行操作。

重要

您不能使用具有可查询加密的集合与 mongorestore

您可以使用 MongoDB 数据库工具从自托管部署迁移到 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

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

--quiet

以静默模式运行 mongorestore,尝试限制输出数量。

此选项抑制以下输出:

  • 数据库命令

  • 复制活动

  • 连接接受事件

  • 连接关闭事件

--version

返回 mongorestore 版本号。

--config=<filename>

新增在版本100.3.0.

指定包含以下选项敏感值的YAML配置文件的完整路径,这些选项用于 mongorestore

这是指定 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]]"

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 格式 文档。

注意

连接字符串中的某些组件可以使用它们自己的显式命令行选项来指定,例如 --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尝试连接到运行在本机上的MongoDB实例,端口号为27017

要连接到副本集,请指定replSetName和副本集成员的种子列表,如下所示

--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>

在指定副本集列表格式时,mongorestore始终连接到主节点。

您还可以通过指定副本集成员的宿主机和端口号来连接到该成员的任何单个成员

--host=<hostname1><:port>

如果您使用IPv6并且使用<address>:<port>格式,必须将地址和端口号组合的部分放在括号中(例如[<address>])。

或者,您还可以直接在URI连接字符串中指定主机名。当使用--host和指定冲突信息的同时提供连接字符串时,将导致错误。

--port=<port>

默认值: 27017

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

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

--ssl

启用与已启用TLS/SSL支持的mongodmongos的连接。

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

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

--sslCAFile=<filename>

指定包含证书颁发机构根证书链的.pem文件。使用相对路径或绝对路径指定.pem文件名。

或者,您也可以直接在URI连接字符串中指定.pem文件。在同时使用--sslCAFile并指定冲突信息时,将导致错误。

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

--sslPEMKeyFile=<filename>

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

当使用--ssl选项连接到启用了CAFile但未启用allowConnectionsWithoutCertificatesmongodmongos时,此选项是必需的。

或者,您也可以在URI连接字符串中直接指定.pem文件。在同时使用--sslPEMKeyFile和指定冲突信息的情况下提供连接字符串会导致错误。

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

--sslPEMKeyPassword=<value>

指定解密证书私钥文件的密码(即--sslPEMKeyFile)。只有当证书私钥文件被加密时才使用--sslPEMKeyPassword选项。在任何情况下,mongorestore都会从所有日志和报告输出中删除密码。

如果PEM文件中的私钥被加密且您未指定--sslPEMKeyPassword选项,则mongorestore将提示输入密钥短语。请参阅TLS/SSL证书密钥短语。

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

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

警告

在某些系统上,使用--sslPEMKeyPassword选项直接提供的密码可能会被系统状态程序(如ps)看到,这些程序可能被其他用户调用。考虑使用--config选项指定包含密码的配置文件。

--sslCRLFile=<filename>

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

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

--sslAllowInvalidCertificates

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

警告

尽管可用,但如果可能,请避免使用--sslAllowInvalidCertificates选项。如果必须使用--sslAllowInvalidCertificates,则仅在某些入侵不可能的系统上使用此选项。

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

或者,您也可以直接在URI连接字符串中禁用证书验证。当提供连接字符串同时使用--sslAllowInvalidCertificates并指定冲突信息时,将导致错误。

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

--sslAllowInvalidHostnames

禁用TLS/SSL证书中的主机名验证。允许mongorestore连接到MongoDB实例,即使它们的证书中的主机名与指定的主机名不匹配。

或者,您也可以直接在URI连接字符串中禁用主机名验证。当提供连接字符串同时使用--sslAllowInvalidHostnames并指定冲突信息时,将导致错误。

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

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

指定用于认证到使用认证的MongoDB数据库的用户名。与--password--authenticationDatabase选项一起使用。

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

如果您使用MongoDB Atlas集群并通过MONGODB-AWS 认证机制连接,您可以在

  • 该字段,

  • 连接字符串(connection string),或者

  • 环境变量 AWS_ACCESS_KEY_ID

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

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

指定用于验证连接到使用身份验证的MongoDB数据库的密码。与--username--authenticationDatabase 选项一起使用。

若要提示用户输入密码,请使用不带 --password 选项的 --username 选项,或者指定一个空字符串作为 --password 的值,例如 --password="" .

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

如果您使用 MONGODB-AWS 身份验证机制 连接到 MongoDB Atlas 集群,可以在

  • 该字段,

  • 连接字符串(connection string),或者

  • 环境变量 AWS_SECRET_ACCESS_KEY 中指定您的AWS秘密访问密钥。

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

警告

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

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

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

--awsSessionToken=<AWS 会话令牌>

如果使用 MongoDB Atlas 集群并通过 MONGODB-AWS 身份验证机制 连接,并且除了 AWS 访问密钥 ID 和密钥之外还使用会话令牌,你可以在

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

仅在使用 MONGODB-AWS 身份验证机制 时有效。

--authenticationDatabase=<dbname>

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

如果使用 GSSAPI (Kerberos)、PLAIN (LDAP SASL) 或 MONGODB-AWS 身份验证机制,则必须将 --authenticationDatabase 设置为 $external

另外,您还可以直接在URI 连接字符串中指定身份验证数据库。在使用--authenticationDatabase时提供连接字符串并指定冲突信息将导致错误。

--authenticationMechanism=<name>

默认: SCRAM-SHA-1

指定mongorestore实例用于验证mongodmongos的身份验证机制。

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

描述

RFC 7677 使用SHA-256哈希函数的标准盐值挑战响应认证机制。

需要将featureCompatibilityVersion设置为4.0

MongoDB TLS/SSL证书认证。
MONGODB-AWS

使用AWS IAM凭证进行的外部认证,用于连接到MongoDB Atlas集群。请参阅使用AWS IAM凭证连接到MongoDB Atlas集群

新增在版本100.1.0.

GSSAPI (Kerberos)
使用Kerberos进行的外部认证。此机制仅在MongoDB Enterprise.中可用。
PLAIN (LDAP SASL)
使用LDAP进行的外部认证。您也可以使用PLAIN对数据库中的用户进行认证。PLAIN以明文形式传输密码。此机制仅在MongoDB Enterprise.中可用。

或者,您也可以直接在URI连接字符串中指定认证机制。同时使用--authenticationMechanism和指定冲突信息时将导致错误。

--gssapiServiceName=<serviceName>

使用 GSSAPI/Kerberos 指定服务名称。如果服务不使用默认名称 mongodb,则必须指定。

此选项仅在 MongoDB 企业版中可用。

--gssapiHostName=<hostname>

使用 GSSAPI/Kerberos 指定服务的主机名。如果机器的主机名与 DNS 解析的主机名不匹配,则需要指定。

此选项仅在 MongoDB 企业版中可用。

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

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

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

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

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

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

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

指定 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来排除多个命名空间模式。

如果您同时指定了--nsExclude--nsInclude,则--nsExclude指定的模式具有优先权。例如,如果您同时指定了--nsExclude="prod.*"--nsInclude="prod.trips",则不会恢复prod命名空间中的任何集合。

--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命名空间中的任何集合。

--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 数据库时,带有 --dropmongorestore 将删除所有用户凭证,并用备份文件中定义的用户替换它们。因此,在启用了 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 文件源

  • 转储目录的顶级目录,例如使用 mongodump --oplog 创建的转储。

  • --oplogFile 指定的路径。

  • <dump-directory>/local/oplog.rs.bson,在这种情况下,转储 local 数据库中的 oplog.rs 集合。

如果转储目录顶级目录中存在 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 创建的 副本集 成员的完整备份。如果使用以下选项之一限制要恢复的数据,带有 --oplogReplaymongorestore 将失败:

--oplogLimit=<timestamp>

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

警告

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

您必须与--oplogReplay选项一起使用--oplogLimit

--oplogFile=<path>

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

如果您指定了--oplogFile并且备份目录顶层存在oplog.bson文件,则mongorestore会返回错误。

警告

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

--convertLegacyIndexes

新增在版本100.0.0.

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

  • 无效的索引选项是指为索引指定的任何选项,这些选项在有效字段列表中未列出,用于createIndexes命令。例如,namecollation是有效的,但任意的custom_field不是。如果指定了--convertLegacyIndexes,则任何无效的索引选项都会被删除。

  • 旧版索引键值是指不再支持的任何索引类型的值。例如,1-1是有效的索引键值,但0或空字符串是旧版值。如果指定了--convertLegacyIndexes,则任何旧版索引键值都会重写为1。非空字符串值不会被替换。

如果没有指定--convertLegacyIndexes选项,无效的索引选项或旧版索引键值的存在可能导致索引构建失败。

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

--keepIndexVersion

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

--noIndexRestore

防止mongorestore根据相应的mongodump输出恢复和构建索引。

--fixDottedHashIndex

在目标数据库中创建所有点字段上的哈希索引,作为单字段升序索引。

--noOptionsRestore

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

--restoreDbUsersAndRoles

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

注意

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

--writeConcern=<document>

默认值: majority

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

指定写关注为一个包含 w 选项 的文档:

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

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

--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

要从压缩存档文件中恢复,请使用同时带有 --gzip--archive 选项的 mongorestore

注意

您可以使用与 --gzip 选项一起使用的 --nsFrom--nsTo 选项来更改您正在恢复的集合的命名空间。

--archive=<文件名>

从指定的存档文件恢复,如果未指定文件,则从标准输入(stdin)恢复

  • 要从存档文件恢复,请在mongorestore中使用--archive选项和存档文件名

  • 要从标准输入恢复,请在mongorestore中使用--archive选项,但省略文件名。

注意

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

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

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

<path>

恢复数据所使用的目录路径或BSON文件名。

您不能同时指定<path>参数和--dir选项,后者也指定了转储目录,并将其传递给mongorestore

--dir=string

指定导出目录。

  • 您不能同时指定 --dir 选项和 <path> 参数,后者也指定了导出目录,并将其传递给 mongorestore

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

--compressors=<string>

指定 MongoDB 服务器与 mongorestore 之间使用的压缩算法。您可以为 --compressors 选项使用以下值之一

  • snappy

  • zlib

  • zstd

如果您指定了多个压缩算法,mongorestore 将使用您的 MongoDB 部署支持的列表中的第一个。

有关压缩器的更多信息,请参阅 Go 驱动网络压缩文档。

返回

示例