## 20.2 Document Store Concepts

 This section explains the concepts introduced as part of using MySQL as a document store.

* [JSON Document](document-store-concepts.html#document-store-concepts-json-document)

* [Collection](document-store-concepts.html#document-store-concepts-collection)

* [CRUD Operations](document-store-concepts.html#document-store-concepts-crud-operation)

### JSON Document

 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`](json.html) 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.

### Collection

 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.

### CRUD Operations

 The four basic operations that can be issued against a collection are Create, Read, Update and Delete (CRUD). In terms of MySQL this means:

* Create a new document (insertion or addition)

* Read one or more documents (queries)

* Update one or more documents

* Delete one or more documents

