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角色。