MySQL Shell 8.4  /  MySQL Shell 实用程序  /  JSON 导入实用程序

11.2 JSON 导入实用程序

MySQL Shell 的 JSON 导入实用程序 util.importJSON() 使您能够将 JSON 文档从文件(或 FIFO 特殊文件)或标准输入导入到 MySQL 服务器集合或关系表。该实用程序会检查提供的 JSON 文档是否格式正确,并将它们插入到目标数据库中,从而无需使用多个 INSERT 语句或编写脚本来完成此任务。

您可以将 JSON 文档导入到现有的表或集合,也可以导入到为导入创建的新表或集合。如果目标表或集合在指定的数据库中不存在,则实用程序会自动创建它,并使用默认的集合或表结构。默认集合是通过从 schema 对象调用 createCollection() 函数创建的。默认表按如下方式创建

CREATE TABLE `dbname`.`tablename` (
   target_column JSON,
   id INTEGER AUTO_INCREMENT PRIMARY KEY 
) CHARSET utf8mb4 ENGINE=InnoDB;

默认集合名称或表名称是提供的导入文件(不带文件扩展名)的名称,默认 target_column 名称是 doc

JSON 导入实用程序可以处理以 JSON 文档表示的 BSON(二进制 JSON)数据类型。BSON 文档中使用的数据类型并非都受到 JSON 的原生支持,但可以使用 JSON 格式的扩展名来表示。导入实用程序可以处理使用 JSON 扩展名表示 BSON 数据类型的文档,将它们转换为相同或兼容的 MySQL 表示形式,并使用该表示形式导入数据值。生成的转换后的数据值可以在表达式和索引中使用,并通过 SQL 语句和 X DevAPI 函数进行操作。

要将 BSON 类型的 JSON 扩展名转换为 MySQL 类型,您必须在运行导入实用程序时指定 convertBsonTypes 选项。还有其他选项可用于控制特定 BSON 数据类型的映射和转换。如果导入包含 BSON 类型的 JSON 扩展名的文档,并且不使用此选项,则文档将按照其在输入文件中的表示形式导入。