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