#### 20.3.3.2 使用集合

[](<>)

要使用模式中的集合，请使用`D b`访问当前模式的全局对象。在这个例子中，我们使用`世界_x`先前导入的架构，以及`国家信息`收藏。因此，您发出的操作的格式是`D b。*`集合名称`*。手术`， 在哪里*`集合名称`*是对其执行操作的集合的名称。在以下示例中，操作是针对`国家信息`收藏。

##### 添加文档

使用`添加（）`将一个文档或文档列表插入现有集合的方法。将以下文档插入`国家信息`收藏。由于这是多行内容，请按**进入**两次插入文档。

```
mysql-js> db.countryinfo.add(
 {
    GNP: .6,
    IndepYear: 1967,
    Name: "Sealand",
    Code: "SEA",
    demographics: {
        LifeExpectancy: 79,
        Population: 27
    },
    geography: {
        Continent: "Europe",
        Region: "British Islands",
        SurfaceArea: 193
    },
    government: {
        GovernmentForm: "Monarchy",
        HeadOfState: "Michael Bates"
    }
  }
)
```

该方法返回操作的状态。您可以通过搜索文档来验证操作。例如：

```
mysql-js> db.countryinfo.find("Name = 'Sealand'")
{
    "GNP": 0.6,
    "_id": "00005e2ff4af00000000000000f4",
    "Name": "Sealand",
    "Code:": "SEA",
    "IndepYear": 1967,
    "geography": {
        "Region": "British Islands",
        "Continent": "Europe",
        "SurfaceArea": 193
    },
    "government": {
        "HeadOfState": "Michael Bates",
        "GovernmentForm": "Monarchy"
    },
    "demographics": {
        "Population": 27,
        "LifeExpectancy": 79
    }
}
```

请注意，除了添加文档时指定的字段外，还有一个字段，即`_id`.每个文档都需要一个标识符字段，称为`_id`.的价值`_id`字段在同一集合中的所有文档中必须是唯一的。在 MySQL 8.0.11 及更高版本中，文档 ID 由服务器生成，而不是客户端，因此 MySQL Shell 不会自动设置`_id`价值。8.0.11 或更高版本的 MySQL 服务器设置`_id`如果文档不包含`_id`场地。早期 8.0 版本或 5.7 版本的 MySQL 服务器不设置`_id`在这种情况下的值，因此您必须明确指定它。如果不这样做，MySQL Shell 将返回错误 5115 文档缺少必填字段。有关更多信息，请参阅[了解文档 ID](https://dev.mysql.com/doc/x-devapi-userguide/en/understanding-automatic-document-ids.html).

##### 相关信息

-   看[集合添加函数](https://dev.mysql.com/doc/x-devapi-userguide/en/crud-ebnf-collection-crud-functions.html#crud-ebnf-collectionaddfunction)完整的语法定义。

-   看[了解文档 ID](https://dev.mysql.com/doc/x-devapi-userguide/en/understanding-automatic-document-ids.html).
