警告
数据导入和导出与 ($) 和 (.) 冲突
从MongoDB 5.0开始,文档字段名称可以以美元字符 ( $ ) 作为前缀,并且可以包含句点字符 ( . )。 但是, mongoimport和mongoexport不适用于使用这些字符的字段名称。
MongoDB扩展JSON v2 无法区分类型包装器和恰好与类型包装器同名的字段。在相应的BSON表示形式可能包含 () 前缀键的情况下,请勿使用扩展JSON格式。$ DBRef 机制是该一般规则的例外。
在字段名称中使用 mongoimport 和 mongoexport 以及 (.) 也有限制。由于 CSV 文件使用 (.) 表示数据层次结构,因此字段名称中的 (.) 将被误解为嵌套级别。
行为
类型保真度
如果在使用 执行完整实例备份时需要保留所有丰富的BSON数据类型,请为 mongoexport选项指定扩展JSON2 v.0 --jsonFormat(规范模式):
mongoexport --jsonFormat=canonical --collection=<coll> <connection-string>
如果不指定--jsonFormat ,则mongoexport 默认以扩展JSON2 v.0 (宽松模式)输出数据。
mongoimport恢复时,mongoexport 会自动使用在指定目标数据文件中找到的JSON格式。示例,如果目标数据导出文件由指定了 的--jsonFormat=canonical 创建,则使用规范模式)。
FIPS
mongoexport 自动创建与配置为使用 FIPS模式的mongod / 的符合mongos FIPS 标准的连接。
读取偏好
默认下,mongoexport 使用读取偏好(read preference)primary 。要覆盖默认,您可以在 命令行选项或 --readPreference中指定读取偏好(read--uri connection string preference)。
如果您在 URI string和--readPreference中指定读取偏好(read preference),则--readPreference值将覆盖 URI string中指定的读取偏好(read preference)。
必需的访问权限
mongoexport 需要对目标数据库具有读取访问权限。
确保连接用户至少拥有目标数据库上的read 角色。