Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

22.4.3.2 使用集合进行工作

要在模式中使用集合,请使用 db 全局对象访问当前模式。在这个示例中,我们使用了之前导入的 world_x 模式和 countryinfo 集合。因此,操作的格式为 db.collection_name.operation,其中 collection_name 是操作执行的集合的名称。在以下示例中,操作是针对 countryinfo 集合执行的。

添加文档

使用 add() 方法将一个文档或文档列表插入到现有的集合中。将以下文档插入到 countryinfo 集合中。由于这是多行内容,请按两次 Enter 键以插入文档。

mysql-py> 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-py> 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。在 MySQL 8.0.11 及更高版本中,文档 ID 由服务器生成,而不是客户端,因此 MySQL Shell 不会自动设置 _id 值。MySQL 服务器在 8.0.11 或更高版本中,如果文档不包含 _id 字段,将设置 _id 值。MySQL 服务器在 8.0 早期版本或 5.7 中,不会在这种情况下设置 _id 值,因此您必须明确指定。如果您不这样做,MySQL Shell 将返回错误 5115 文档缺少必需字段。有关更多信息,请参阅 理解文档 ID

相关信息