mongoimport 行为、访问和使用
警告
数据导入和导出与 ($) 和 (.) 冲突
从 MongoDB 5.0 开始,文档字段名可以以美元字符($
) 开头,并可以包含点字符(.
)。然而,mongoimport
和 mongoexport
不支持使用这些字符的字段名。
MongoDB 扩展 JSON v2无法区分类型包装器和偶然与类型包装器同名的字段。不要在可能包含($
)前缀键的相应 BSON 表示形式的上下文中使用扩展 JSON 格式。DBRef 机制是这一通用规则的例外。
使用(mongoimport
)和(mongoexport
)时,字段名中也有对使用(.
)的限制。由于 CSV 文件使用(.
)来表示数据层次结构,字段名中的(.
)将被错误地解释为一个嵌套级别。
行为
类型保真度
如果您在使用(
)进行完整实例备份时需要保留所有丰富的 BSON 数据类型,请确保将(mongoexport
Extended JSON v2.0 (Canonical mode)
)指定给(
)选项,如下所示--jsonFormat
mongoexport --jsonFormat=canonical --collection=<coll> <connection-string>
如果没有指定(
),则(--jsonFormat
)默认以(mongoexport
Extended JSON v2.0 (Relaxed mode)
)输出数据。
mongoimport
在恢复时将自动使用在指定目标数据文件中找到的 JSON 格式。例如,如果目标数据导出文件是由带有 --jsonFormat=canonical
指定的 mongoexport
创建的,它将使用 Extended JSON v2.0 (Canonical mode)。
JSON 格式
mongoimport
默认要求导入数据采用 Extended JSON v2.0 (Canonical) 或 Extended JSON v2.0 (Relaxed) 格式。对于使用 Extended JSON v1.0 格式化的导入数据,请指定 --legacy
选项。
提示
通常,mongoexport
和 mongoimport
的版本应匹配。也就是说,要从 mongoexport
创建的数据导入,应使用相应的 mongoimport
版本。
文档顺序
默认情况下,mongoimport
可能以随机顺序插入文档。要在恢复过程中保留文档顺序,请使用 --maintainInsertionOrder
。
编码
mongoimport
只支持UTF-8编码的数据文件。使用其他编码会导致错误。
FIPS
写入关注
如果您在 --writeConcern
选项和 --uri
连接字符串 选项中都指定了写入关注,则 --writeConcern
的值将覆盖URI字符串中指定的写入关注。
批次
mongoimport
使用最大批次大小为100,000来执行批量插入/更新操作。
所需权限
为了连接到使用 mongod
进行授权的 --auth
选项的 --username
和 --password
选项,连接的用户至少需要具有导入数据到数据库的 readWrite
角色。