一. 备份
mongoexport
https://www.mongodb.com/zh-cn/docs/database-tools/mongoexport/#mongoexport
mongoexport
是一个数据库工具,它可将 MongoDB 实例中存储的数据导出为 JSON 或 CSV。
从系统命令行运行 mongoexport
,而非 mongo shell。
mongoexport
不是用于备份部署的工具。如果要创建备份解决方案,请参阅使用 MongoDB 工具备份和恢复自管理部署。
提示
另请参阅:
mongoimport而它提供了相应的结构化数据导入功能。
注意
如果您要存档过时数据以节省存储成本,请考虑使用 MongoDB Atlas 中的 Online Archive。Online Archive 可自动将不常访问的数据存档到完全托管的 S3 存储桶,以实现经济高效的数据分层。
您可以使用 Database Tools 从自托管部署迁移到 MongoDB Atlas。MongoDB Atlas 是用于云中 MongoDB 部署的完全托管服务。要了解详情,请参阅使用 mongorestore 播种。
要了解迁移到 MongoDB Atlas 的所有方法,请参阅迁移或导入数据。
语法
mongoexport
语法:
mongoexport --collection=<coll> <options> <connection-string> |
您必须指定要导出的collection 。 如果未指定output file ,则mongoexport
会写入标准输出(例如 stdout)。
连接到 MongoDB 实例
要连接到端口 27017 上所运行的本地 MongoDB 实例,您不必指定主机或端口。
例如,要从运行在 27017 端口的本地 MongoDB 实例导出指定的 collection 到指定的 output file:
mongoexport --collection=events --db=reporting --out=events.json |
要指定 MongoDB 实例的主机和/或端口,可以执行以下任一操作:
-
在--uri connection string中指定主机名和端口:
mongoexport --uri="mongodb://mongodb0.example.com:27017/reporting" --collection=events --out=events.json [additional options]
使用--uri connection string时,可以将数据库指定为string的一部分。
-
mongoexport --host="mongodb0.example.com:27017" --collection=events --db=reporting --out=events.json [additional options]
-
mongoexport --host="mongodb0.example.com" --port=27017 --collection=events --db=reporting --out=events.json [additional options]
有关可用选项的更多信息,请参阅选项。
连接到副本集
注意
mongoexport
不是用于备份数据的工具。要备份副本集,请参阅使用 MongoDB Tools备份和恢复自管理部署。
要连接到副本集以导出其数据,可以执行以下任一操作:
-
在--uri connection string中指定副本集名称和成员:
mongoexport --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/reporting?replicaSet=myReplicaSetName" --collection=events --out=events.json [additional options]
使用--uri connection string时,可以将数据库指定为string的一部分。
-
mongoexport --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com" --collection=events --db=reporting --out=events.json [additional options]
默认情况下, mongoexport
从副本集的主节点读取。 要覆盖默认值,可以指定读取偏好:
-
可以在 --uri connection string 中指定读取偏好
mongoexport --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/reporting?replicaSet=myReplicaSetName&readPreference=secondary" --collection=events --out=events.json [additional options]
如果指定读取偏好标记,请包含readPreferenceTags选项:
mongoexport --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/reporting?replicaSet=myReplicaSetName&readPreference=secondary&readPreferenceTags=region:east" --collection=events --out=events.json [additional options]
使用--uri connection string时,可以将数据库指定为string的一部分。
-
您可以使用--readPreference命令行选项指定读取偏好。 如果仅指定读取偏好模式,则该命令行选项会使用一个string :
mongoexport --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017" --readPreference=secondary --collection=events --db=reporting --out=events.json [additional options]
或者,命令行选项可以采用用引号括起来的文档
'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}'
来指定模式、可选的读取偏好 标签集和可选的maxStalenessSeconds:mongoexport --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017" --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ]}' --collection=events --db=reporting --out=events.json [additional options]
有关可用选项的更多信息,请参阅选项。
连接到分片集群
注意
mongoexport
不是备份数据的工具。要备份分片集群,请参阅备份和恢复自管理分片集群。
要连接到分片集群以导出其数据,可以执行以下任一操作:
-
在 中指定mongos--uri connection string 实例的主机名
mongoexport --uri="mongodb://mongos0.example.com:27017/reporting" --collection=events --out=events.json [additional options]
使用--uri connection string时,可以将数据库指定为string的一部分。
-
mongoexport --host="mongos0.example.com:27017" --collection=events --db=reporting --out=events.json[additional options]
默认情况下, mongoexport
从分片副本集的主节点读取。 要覆盖默认值,可以指定读取偏好:
-
可以在 --uri connection string 中指定读取偏好
mongoexport --uri="mongodb://mongos0.example.com:27017/reporting?readPreference=secondary" --collection=events --out=events.json [additional options]
如果指定读取偏好标记,请包含readPreferenceTags选项:
mongoexport --uri="mongodb://mongos0.example.com:27017/reporting?readPreference=secondary&readPreferenceTags=region:east" --collection=events --out=events.json [additional options]
使用--uri connection string时,可以将数据库指定为string的一部分。
-
您可以使用--readPreference命令行选项指定读取偏好。 如果仅指定读取偏好模式,则该命令行选项会使用一个string :
mongoexport --host="mongos0.example.com:27017" --readPreference=secondary --collection=events --db=reporting --out=events.json [additional options]
或者,命令行选项可以采用用引号括起来的文档
'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}'
来指定模式、可选的读取偏好 标签集和可选的maxStalenessSeconds:mongoexport --host="mongos0.example.com:27017" --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ]}' --collection=events --db=reporting --out=events.json [additional options]
选项
--help
返回有关 mongoexport
的选项和使用的信息。
--verbose, -v
增加标准输出或日志文件中返回的内部报告数量。通过包括多个 -v
选项来提高详细程度,(例如 -vvvvv
。)
--quiet
在尝试限制输出量的安静模式下运行 mongoexport
。
该选项会抑制:
-
数据库命令输出
-
复制活动
-
已接受和已关闭的事件连接
-
所有日志,包括错误信息,解析选项时出现的错误信息除外
--version
返回 mongoexport
版本号。
--config=<filename>
版本 100.3.0 中的新增内容。
指定包含以下 mongoexport
选项的敏感值的 YAML 配置文件的完整路径:
除通过密码提示来指定密码之外,这是为 mongoexport
指定密码的另一推荐方法。
配置文件采用以下形式:
password: <password> |
uri: mongodb://mongodb0.example.com:27017 |
sslPEMKeyPassword: <password> |
向 password:
字段指定密码并在 uri:
字段中提供包含冲突密码的连接字符串将导致错误。
请务必使用相应的文件系统权限保护此文件。
注意
如果使用 --config 来指定配置文件,并使用 --password、--uri 或 --sslPEMKeyPassword 选项来 mongoexport
,那么每个命令行选项均会覆盖其在配置文件中的相应选项。
--uri=<connectionString>
指定 MongoDB 部署的可解析 URI 连接字符串(用引号括起):
--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" |
从 mongoexport
的 100.0
版本开始,也可以将连接字符串作为位置参数提供,而无需使用 --uri 选项:
mongoexport mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] |
作为位置参数,可以在命令行上的任何位置指定连接字符串,前提是它以 mongodb://
或 mongodb+srv://
开头。例如:
mongoexport --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl |
只能提供一个连接字符串。无论是使用 --uri 选项还是作为位置参数,尝试纳入多个连接字符串都会导致错误。
有关连接字符串的组件信息,请参阅连接字符串 URI 格式文档。
注意
connection string 中的某些组件也可以使用各自的显式命令行选项来指定,例如 --username 和 --password。在提供连接字符串的同时,使用显式选项并指定冲突信息会导致错误。
注意
如果是在 Ubuntu 18.04 上使用 mongoexport
,则在使用带 --uri 选项的 SRV 连接字符串(采用 mongodb+srv://
格式)时,可能会出现“cannot unmarshal DNS
”错误消息。如果是这样,请改用以下选项之一:
-
带有 非 SRV 连接字符串(格式为
mongodb://
)的 --uri 选项 -
--host 选项指定直接连接的主机
警告
在某些系统上,使用 --uri 选项在连接字符串中提供的密码,可能会被其他用户调用的系统状态程序(如 ps
)探测到。请考虑:
-
在连接字符串中省略密码,接收交互式密码提示,或者
-
使用 --config 选项指定包含密码的配置文件。
--host=<hostname><:port>, -h=<hostname><:port>
默认:localhost:27017
指定 MongoDB 部署的可解析主机名。默认情况下,mongoexport
尝试连接到在本地主机端口号 27017
上运行的 MongoDB 实例。
要连接到副本集,请指定 replSetName 和副本集成员的种子列表,如下所示:
--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> |
指定副本集列表格式时,mongoexport
始终连接到主节点。
还可以通过仅指定该成员的主机和端口来连接至副本集的任何单个成员:
--host=<hostname1><:port> |
如果您使用 IPv6 并采用 <address>:<port>
格式,则须将地址与端口的组合部分用方括号括起(即 [<address>]
)。
或者,您也可直接在 URI connection string 中指定主机名。在提供连接字符串的同时使用 --host 并指定冲突信息将导致错误。
--port=<port>
默认: 27017
指定 MongoDB 实例侦听客户端连接的 TCP 端口。
或者,也可以直接在 URI connection string 中指定端口。在提供连接字符串的同时使用 --port 并指定冲突信息将导致错误。
--ssl
支持链接到启用 TLS/SSL 支持的 mongod 或 mongos。
或者,也可以直接在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且未启用allowConnectionsWithoutCertificates的mongod
或mongos
时,需要使用此选项。
或者,也可以直接在 URI connection string 中指定 .pem
文件。在提供连接字符串的同时使用 --sslPEMKeyFile 并指定冲突信息将导致错误。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslPEMKeyPassword=<value>
指定解密证书密钥文件的密码(即 --sslPEMKeyFile)。仅当证书密钥文件已加密时才能使用 --sslPEMKeyPassword 选项。在所有情况下,mongoexport
都会对所有日志记录和报告输出中的密码进行脱敏。
如果 PEM 文件中的私钥已加密,并且您未指定 --sslPEMKeyPassword 选项,mongoexport
将提示输入密码。请参阅 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
,请仅在不可能入侵的系统上使用该选项。
在未验证服务器证书的情况下,连接到 mongod 或 mongos 实例存在潜在的安全风险。如果只需禁用 TLS/SSL 证书中的主机名验证,请参阅 --sslAllowInvalidHostnames
。
或者,也可以直接在 URI connection string 中禁用证书验证。在提供连接字符串的同时使用 --sslAllowInvalidCertificates 并指定冲突信息将导致错误。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos 和客户端的 TLS/SSL 配置。
--sslAllowInvalidHostnames
禁用 TLS/SSL 证书中的主机名验证。即使证书中的主机名与指定的主机名不匹配,也支持 mongoexport
连接到 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_ACCESS_KEY_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_SECRET_ACCESS_KEY
环境变量。
请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。
警告
在某些系统上,直接使用 --password 选项提供的密码,可能会被其他用户调用的系统状态程序(如 ps
)探测到。请考虑:
-
省略 --password 选项,从而接收交互式密码提示,或
-
使用 --config 选项指定包含密码的配置文件。
--awsSessionToken=<AWS Session Token>
如果使用 MONGODB-AWS
authentication mechanism 连接到 MongoDB Atlas 集群,并且除了 AWS 访问密钥 ID 和私密访问密钥之外还使用会话令牌,则可以在以下情况中指定 AWS 会话令牌:
-
这个字段,
-
connection string 的
AWS_SESSION_TOKEN
authMechanismProperties 参数,或 -
AWS_SESSION_TOKEN
环境变量。
请参阅使用 AWS IAM 凭据连接到 MongoDB Atlas 集群,了解每个凭据的示例。
仅在使用 MONGODB-AWS
authentication mechanism 时有效。
--authenticationDatabase=<dbname>
指定已创建指定 --username 的身份验证数据库。请参阅身份验证数据库。
如果未指定身份验证数据库,mongoexport
将假定指定要导出的数据库保存用户凭证。
如果使用的是 GSSAPI (Kerberos)、PLAIN (LDAP SASL) 或 MONGODB-AWS
authentication mechanisms,则须将 --authenticationDatabase 设为 $external
。
或者,也可以直接在 URI connection string 中指定身份验证数据库。在提供连接字符串的同时使用 --authenticationDatabase 并指定冲突信息将导致错误。
--authenticationMechanism=<name>
默认值:SCRAM-SHA-1
指定 mongoexport
实例用来向 mongod 或 mongos 进行身份验证的机制。
在版本 100.1.0 中进行了更改:从版本 100.1.0
开始,mongoexport
在连接到 MongoDB Atlas 集群时增加了对 MONGODB-AWS
身份验证机制的支持。
值 | 说明 |
---|---|
RFC 5802 使用 SHA-1 哈希函数的标准 Salted Challenge Response Authentication Mechanism | |
RFC 7677 使用 SHA-256 哈希函数的标准 Salted Challenge Response Authentication Mechanism 需将 featureCompatibilityVersion 设为 | |
MongoDB TLS/SSL 证书身份验证。 | |
| 使用 AWS IAM 凭据进行外部身份验证,用于连接到 MongoDB Atlas 集群。请参阅使用 AWS IAM 凭证连接到 MongoDB Atlas 集群。 100.1.0 版本新增。 |
GSSAPI (Kerberos) | 使用 Kerberos 的外部身份验证。此机制仅在 MongoDB Enterprise 中可用。 |
普通版 (LDAP SASL) | 使用 LDAP 进行外部身份验证。也可使用 |
或者,也可以直接在 URI connection string 中指定身份验证机制。在提供连接字符串的同时使用 --authenticationMechanism 并指定冲突信息将导致错误。
--gssapiServiceName=<serviceName>
使用 GSSAPI/Kerberos 指定服务名称。仅当服务未使用默认名称 mongodb
时才需要。
此选项仅在 MongoDB Enterprise 中可用。
--gssapiHostName=<hostname>
使用 GSSAPI/Kerberos 指定服务的主机名。仅当机器的主机名与 DNS 解析的主机名不匹配时才需要。
此选项仅在 MongoDB Enterprise 中可用。
--db=<database>, -d=<database>
指定要在其上运行mongoexport
的数据库的名称。
或者也可以直接在 URI connection string 中指定数据库。在提供连接字符串的同时使用 --db 并指定冲突信息将导致错误。
--collection=<collection>, -c=<collection>
指定要导出的集合。
--fields=<field1[,field2]>, -f=<field1[,field2]>
指定要包含在 导出中的一个或多个字段。使用逗号分隔的字段列表指定多个字段。
如果任一字段名称包含空格,请使用引号将字段列表括起来。例如,如果希望导出两个字段 phone
和 user number
,则应指定 --fields "phone,user number"
。
对于csv输出格式, mongoexport
仅包括指定的字段,并且指定的字段可以是子文档中的字段。
对于JSON输出格式, mongoexport
仅包括指定的字段和_id
字段,如果指定的字段是子文档中的字段,则mongoexport
包括子文档其所有字段,而不仅仅是文档中的指定字段。
有关示例用法,请参阅:使用--fields选项以 CSV 格式导出数据。
--fieldFile=<filename>
--fields的替代方案。 --fieldFile选项允许您在文件中指定要包含在导出中的一个或多个字段,并且仅在与值为csv
的--type选项一起使用时有效。 此文件每行只能有一个字段,且各行必须以 LF 字符 ( 0x0A
) 结尾。
mongoexport
仅包括指定的字段。指定的字段可以是子文档中的字段。
有关示例用法,请参阅使用文件指定要以 CSV 格式导出的字段。
--query=<JSON>, -q=<JSON>
以JSON document提供查询(用引号括起来),以在导出时返回匹配的文档。
必须用单引号 ('{ ... }'
) 括起查询文档,确保它不会与 shell 环境交互。
此查询必须使用扩展 JSON v2 格式(宽松模式或规范/严格模式),其中包括用引号括起字段名和操作符:
例如,数据库 records
中名为 test
的集合包含以下文档:
{ "_id" : ObjectId("51f0188846a64a1ed98fde7c"), "a" : 1, "date" : ISODate("1960-05-01T00:00:00Z") } |
{ "_id" : ObjectId("520e61b0c6646578e3661b59"), "a" : 1, "b" : 2, "date" : ISODate("1970-05-01T00:00:00Z") } |
{ "_id" : ObjectId("520e642bb7fa4ea22d6b1871"), "a" : 2, "b" : 3, "c" : 5, "date" : ISODate("2010-05-01T00:00:00Z") } |
{ "_id" : ObjectId("520e6431b7fa4ea22d6b1872"), "a" : 3, "b" : 3, "c" : 6, "date" : ISODate("2015-05-02T00:00:00Z") } |
{ "_id" : ObjectId("520e6445b7fa4ea22d6b1873"), "a" : 5, "b" : 6, "c" : 8, "date" : ISODate("2018-03-01T00:00:00Z") } |
{ "_id" : ObjectId("5cd0de910dbce4346295ae28"), "a" : 15, "b" : 5, "date" : ISODate("2015-03-01T00:00:00Z") } |
以下 mongoexport
使用 -q 选项仅导出字段 a
大于或等于 ($gte) 3
且字段 date
小于 ($lt) ISODate("2016-01-01T00:00:00Z")
的文档,日期使用扩展 JSON v2 格式(宽松模式)来指定 ( { "$date": "YYYY-MM-DDTHH:mm:ss.mmm\<offset\>"}
):
mongoexport -d=test -c=records -q='{ "a": { "$gte": 3 }, "date": { "$lt": { "$date": "2016-01-01T00:00:00.000Z" } } }' --out=exportdir/myRecords.json |
生成的文件包含以下文档:
{"_id":{"$oid":"520e6431b7fa4ea22d6b1872"},"a":3.0,"b":3.0,"c":6.0,"date":{"$date":"2015-05-02T00:00:00Z"}} |
{"_id":{"$oid":"5cd0de910dbce4346295ae28"},"a":15.0,"b":5.0,"date":{"$date":"2015-03-01T00:00:00Z"}} |
您可以使用mongoexport
的--sort选项对结果进行排序。
--queryFile=<filename>
--query 的替代方案。--queryFile
选项允许在文件中指定扩展 JSON v2 格式的查询。
--type=<string>
默认: json
指定要导出的文件类型。 为CSV格式指定csv
,或为JSON格式指定json
。
如果指定csv
,则还必须使用--fields或--fieldFile选项来声明要从集合中导出的字段。
--out=<file>, -o=<file>
指定要写入导出内容的文件。 如果未指定文件名, mongoexport
会将数据写入标准输出(例如 stdout
)。
--jsonFormat=<canonical|relaxed>
默认:宽松
修改输出以使用 MongoDB Extended JSON (v2) 格式的规范或宽松模式。
有关规范模式和宽松模式的区别,请参阅 MongoDB Extended JSON (v2)。
--jsonArray
修改mongoexport
的输出,将导出的全部内容写入单个JSON数组。 默认情况下, 为每个 mongoexport
文档使用一个 写入数据。JSON documentMongoDB
--pretty
以美观打印格式的 JSON 输出文档。
--noHeaderLine
默认情况下, mongoexport
将导出的字段名称作为 CSV 输出的第一行。 --noHeaderLine指示mongoexport
导出数据,但不包含字段名称列表。 --noHeaderLine仅在与值为csv
的--type选项一起使用时有效。
有关示例用法,请参阅从 CSV 输出中排除字段名称。
--readPreference=<string|document>
默认: primary
指定mongoexport
的读取偏好。 --readPreference选项可以使用:
-
如果仅指定读取偏好模式,则为一个字符串:
--readPreference=secondary
-
用引号括起的文档,用于指定模式、可选的读取偏好标签集以及可选的 maxStalenessSeconds:
--readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ], maxStalenessSeconds: 120}'
如果指定 maxStalenessSeconds,该值则须大于或等于 90。
如果读取偏好也包含在--uri connection string中,则命令行--readPreference将覆盖 URI string中指定的读取偏好。
--skip=<number>
使用--skip控制mongoexport
开始导出文档的位置。 有关底层操作的信息,请参阅skip() 。
--limit=<number>
指定要包含在导出中的最大文档数。 有关底层操作的信息,请参阅limit() 。
--sort=<JSON>
指定导出结果的顺序。如果不存在可以支持排序操作的索引,则结果必须小于 32 MB。
将--sort与--skip和--limit结合使用以限制导出文档的数量。
mongoexport -d=test -c=records --sort='{a: 1}' --limit=100 --out=export.0.json |
mongoexport -d=test -c=records --sort='{a: 1}' --limit=100 --skip=100 --out=export.1.json |
mongoexport -d=test -c=records --sort='{a: 1}' --limit=100 --skip=200 --out=export.2.json |