This section explains the concepts introduced as part of using MySQL as a document store.
A JSON document is a data structure composed of key-value pairs and is the fundamental structure for using MySQL as document store. For example, the world_x schema (installed later in this chapter) contains this document:
{
"GNP": 4834,
"_id": "00005de917d80000000000000023",
"Code": "BWA",
"Name": "Botswana",
"IndepYear": 1966,
"geography": {
"Region": "Southern Africa",
"Continent": "Africa",
"SurfaceArea": 581730
},
"government": {
"HeadOfState": "Festus G. Mogae",
"GovernmentForm": "Republic"
},
"demographics": {
"Population": 1622000,
"LifeExpectancy": 39.29999923706055
}
}
This document shows that the values of keys can be simple data
types, such as integers or strings, but can also contain other
documents, arrays, and lists of documents. For example, the
geography
key's value consists of multiple
key-value pairs. A JSON document is represented internally using
the MySQL binary JSON object, through the
JSON
MySQL datatype.
The most important differences between a document and the tables known from traditional relational databases are that the structure of a document does not have to be defined in advance, and a collection can contain multiple documents with different structures. Relational tables on the other hand require that their structure be defined, and all rows in the table must contain the same columns.
A collection is a container that is used to store JSON documents in a MySQL database. Applications usually run operations against a collection of documents, for example to find a specific document.