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