### 20.3.3 文件和集合

[20.3.3.1 创建、列出和删除集合](mysql-shell-tutorial-javascript-collections-operations.html)
[20.3.3.2 使用集合](mysql-shell-tutorial-javascript-collections-add.html)
[20.3.3.3 查找文档](mysql-shell-tutorial-javascript-documents-find.html)
[20.3.3.4 修改文档](mysql-shell-tutorial-javascript-documents-modify.html)
[20.3.3.5 删除文档](mysql-shell-tutorial-javascript-documents-remove.html)
[20.3.3.6 创建和删除索引](mysql-shell-tutorial-javascript-indexes-create.html)

[](<>)

当您将 MySQL 用作文档存储时，集合是架构中的容器，您可以创建、列出和删除它们。集合包含您可以添加、查找、更新和删除的 JSON 文档。

本节中的示例使用`国家信息`集合中`世界_x`架构。有关设置的说明`世界_x`架构，见[第 20.3.2 节，“下载和导入世界\_x 数据库”](mysql-shell-tutorial-javascript-download.html).

#### 文件

在 MySQL 中，文档表示为 JSON 对象。在内部，它们以高效的二进制格式存储，可实现快速查找和更新。

-   JavaScript 的简单文档格式：

    ```
    {field1: "value", field2 : 10, "field 3": null}
    ```

    文档数组由一组用逗号分隔并包含在`[`和`]`人物。

-   JavaScript 的简单文档数组：

    ```
    [{"Name": "Aruba", "Code:": "ABW"}, {"Name": "Angola", "Code:": "AGO"}]
    ```

    MySQL 在 JSON 文档中支持以下 JavaScript 值类型：

-   数字（整数和浮点数）

-   字符串

-   布尔值（假和真）

-   空值

-   更多 JSON 值的数组

-   更多 JSON 值的嵌套（或嵌入）对象

#### 收藏品

集合是共享一个目的并可能共享一个或多个索引的文档的容器。每个集合都有一个唯一的名称并存在于一个模式中。

术语模式相当于数据库，这意味着一组数据库对象，而不是关系模式，用于对数据实施结构和约束。模式不对集合中的文档强制执行一致性。

在本快速入门指南中：

-   基本对象包括：

    | 对象形式 | 描述 |
    | ---- | --- |
    | `D b` | `D b`是分配给当前活动模式的全局变量。当你想对模式运行操作时，例如检索一个集合，你可以使用可用于`D b`多变的。 |
    | `db.getCollections()` | [db.getCollections()](mysql-shell-tutorial-javascript-collections-operations.html#mysql-shell-tutorial-javascript-collections-get)返回架构中的集合列表。使用列表获取对集合对象的引用、迭代它们等等。 |

-   集合范围内的基本操作包括：

    | 操作形式 | 描述 |
    | ---- | --- |
    | `D b。*`姓名`*。添加（）` | 这[添加（）](mysql-shell-tutorial-javascript-collections-add.html)方法将一个文档或文档列表插入到命名集合中。 |
    | `D b。*`姓名`*。找（）` | 这[找（）](mysql-shell-tutorial-javascript-documents-find.html)方法返回命名集合中的部分或全部文档。 |
    | `D b。*`姓名`*。调整（）` | 这[调整（）](mysql-shell-tutorial-javascript-documents-modify.html)方法更新命名集合中的文档。 |
    | `D b。*`姓名`*。消除（）` | 这[消除（）](mysql-shell-tutorial-javascript-documents-remove.html)方法从命名集合中删除一个文档或文档列表。 |

#### 相关信息

-   看[使用集合](https://dev.mysql.com/doc/x-devapi-userguide/en/devapi-users-working-with-collections.html)概览。

-   [CRUD EBNF 定义](https://dev.mysql.com/doc/x-devapi-userguide/en/mysql-x-crud-ebnf-definitions.html)提供完整的操作列表。
