MySQL Shell 8.4  /  ...  /  BSON 数据类型表示形式的转换

11.2.4 BSON 数据类型表示形式的转换

当您指定 convertBsonTypes: true (--convertBsonTypes) 选项来转换由 JSON 扩展表示的 BSON 数据类型时,默认情况下,BSON 类型按如下方式导入

日期 (date)

包含字段值的简单值。

时间戳 (timestamp)

使用 time_t 值创建的 MySQL 时间戳。

十进制 (decimal)

包含十进制值字符串表示形式的简单值。

整数 (intlong)

整数值。

正则表达式 (regex 加上选项)

仅包含正则表达式的字符串,忽略选项。如果存在选项,则会打印警告。

二进制数据 (binData)

Base64 字符串。

ObjectID (objectId)

包含字段值的简单值。

可以指定以下控制选项来调整这些 BSON 类型的映射和转换。必须指定 convertBsonTypes: true (--convertBsonTypes) 才能使用以下任何控制选项

ignoreDate: true (--ignoreDate)

禁用 BSON date 类型的转换。数据将作为嵌入式 JSON 文档原样导入到输入文件中。

ignoreTimestamp: true (--ignoreTimestamp)

禁用 BSON timestamp 类型的转换。数据将作为嵌入式 JSON 文档原样导入到输入文件中。

decimalAsDouble: true (--decimalAsDouble)

将 BSON decimal 类型的值转换为 MySQL DOUBLE 类型,而不是字符串。

ignoreRegex: true (--ignoreRegex)

禁用正则表达式(BSON regex 类型)的转换。数据将作为嵌入式 JSON 文档原样导入到输入文件中。

ignoreRegexOptions: false (--ignoreRegexOptions=false)

在字符串中包含与正则表达式关联的选项,以及正则表达式本身(格式为 /<正则表达式>/<选项>)。默认情况下,选项会被忽略 (ignoreRegexOptions: true),但如果存在任何选项,则会打印警告。必须将 ignoreRegex 设置为默认值 false 才能指定 ignoreRegexOptions

ignoreBinary: true (--ignoreBinary)

禁用 BSON binData 类型的转换。数据将作为嵌入式 JSON 文档原样导入到输入文件中。

以下示例将文件 /europe/regions.json 中的文档导入到 mydb 数据库中名为 regions 的关系表中名为 jsondata 的列中。由 JSON 扩展表示的 BSON 数据类型将转换为 MySQL 表示形式,但正则表达式除外,它们将作为嵌入式 JSON 文档导入

mysqlsh user@localhost/mydb --import /europe/regions.json regions jsondata --convertBsonTypes --ignoreRegex