当您指定 convertBsonTypes: true
(--convertBsonTypes
) 选项来转换由 JSON 扩展表示的 BSON 数据类型时,默认情况下,BSON 类型将按如下方式导入
- 日期 (“date”)
包含字段值的简单值。
- 时间戳 (“timestamp”)
使用
time_t
值创建的 MySQL 时间戳。- 十进制 (“decimal”)
包含十进制值字符串表示形式的简单值。
- 整数 (“int” 或 “long”)
整数值。
- 正则表达式 (“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