文档菜单
文档首页
/
MongoDB 数据库工具
/

mongoimport 行为、访问和使用

本页内容

  • 行为
  • 所需访问权限
  • 了解更多

警告

数据导入和导出与 ($) 和 (.) 冲突

从 MongoDB 5.0 开始,文档字段名可以以美元字符($) 开头,并可以包含点字符(.)。然而,mongoimportmongoexport 不支持使用这些字符的字段名。

MongoDB 扩展 JSON v2无法区分类型包装器和偶然与类型包装器同名的字段。不要在可能包含($)前缀键的相应 BSON 表示形式的上下文中使用扩展 JSON 格式。DBRef 机制是这一通用规则的例外。

使用(mongoimport)和(mongoexport)时,字段名中也有对使用(.)的限制。由于 CSV 文件使用(.)来表示数据层次结构,字段名中的(.)将被错误地解释为一个嵌套级别。

如果您在使用(mongoexport)进行完整实例备份时需要保留所有丰富的 BSON 数据类型,请确保将(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)

mongoimport 默认要求导入数据采用 Extended JSON v2.0 (Canonical)Extended JSON v2.0 (Relaxed) 格式。对于使用 Extended JSON v1.0 格式化的导入数据,请指定 --legacy 选项。

提示

通常,mongoexportmongoimport 的版本应匹配。也就是说,要从 mongoexport 创建的数据导入,应使用相应的 mongoimport 版本。

默认情况下,mongoimport 可能以随机顺序插入文档。要在恢复过程中保留文档顺序,请使用 --maintainInsertionOrder

mongoimport 只支持UTF-8编码的数据文件。使用其他编码会导致错误。

mongoimport 自动创建符合FIPS标准的连接到配置为使用FIPS模式的 mongod/mongos

如果您在 --writeConcern 选项和 --uri 连接字符串 选项中都指定了写入关注,则 --writeConcern 的值将覆盖URI字符串中指定的写入关注。

mongoimport 使用最大批次大小为100,000来执行批量插入/更新操作。

为了连接到使用 mongod 进行授权的 --auth 选项的 --username--password 选项,连接的用户至少需要具有导入数据到数据库的 readWrite 角色。

返回

兼容性与安装