MySQL Shell's JSON import utility
util.importJSON()
enables you to import JSON
documents from a file (or FIFO special file) or standard input to
a MySQL Server collection or relational table. The utility checks
that the supplied JSON documents are well-formed and inserts them
into the target database, removing the need to use multiple
INSERT
statements or write scripts
to achieve this task.
You can import the JSON documents to an existing table or
collection or to a new one created for the import. If the target
table or collection does not exist in the specified database, it
is automatically created by the utility, using a default
collection or table structure. The default collection is created
by calling the createCollection()
function
from a schema
object. The default table is
created as follows:
CREATE TABLE `dbname`.`tablename` (
target_column JSON,
id INTEGER AUTO_INCREMENT PRIMARY KEY
) CHARSET utf8mb4 ENGINE=InnoDB;
The default collection name or table name is the name of the
supplied import file (without the file extension), and the default
target_column
name is doc
.
The JSON import utility can process BSON (binary JSON) data types that are represented in JSON documents. The data types used in BSON documents are not all natively supported by JSON, but can be represented using extensions to the JSON format. The import utility can process documents that use JSON extensions to represent BSON data types, convert them to an identical or compatible MySQL representation, and import the data value using that representation. The resulting converted data values can be used in expressions and indexes, and manipulated by SQL statements and X DevAPI functions.
To convert JSON extensions for BSON types into MySQL types, you
must specify the convertBsonTypes
option when
you run the import utility. Additional options are available to
control the mapping and conversion for specific BSON data types.
If you import documents with JSON extensions for BSON types and do
not use this option, the documents are imported in the same way as
they are represented in the input file.