## 20.2 文档存储概念

本节解释了作为使用 MySQL 作为文档存储的一部分而引入的概念。

-   [JSON 文档](document-store-concepts.html#document-store-concepts-json-document)

-   [收藏](document-store-concepts.html#document-store-concepts-collection)

-   [CRUD 操作](document-store-concepts.html#document-store-concepts-crud-operation)

### JSON 文档

JSON 文档是由键值对组成的数据结构，是使用 MySQL 作为文档存储的基础结构。例如，世界\_x 模式（本章稍后安装）包含此文档：

```
{
    "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
    }
}
```

该文档显示键的值可以是简单的数据类型，例如整数或字符串，但也可以包含其他文档、数组和文档列表。例如，`地理`键的值由多个键值对组成。JSON 文档在内部使用 MySQL 二进制 JSON 对象表示，通过[`JSON`](json.html)MySQL 数据类型。

文档与传统关系数据库中已知的表之间最重要的区别在于，文档的结构不必预先定义，一个集合可以包含多个具有不同结构的文档。另一方面，关系表需要定义它们的结构，并且表中的所有行必须包含相同的列。

### 收藏

集合是用于在 MySQL 数据库中存储 JSON 文档的容器。应用程序通常对文档集合运行操作，例如查找特定文档。

### CRUD 操作

可以针对集合发出的四个基本操作是创建、读取、更新和删除 (CRUD)。就 MySQL 而言，这意味着：

-   创建一个新文档（插入或添加）

-   阅读一份或多份文件（查询）

-   更新一份或多份文件

-   删除一份或多份文件
