要使用架构中的集合,请使用
db
全局对象访问当前架构。在此示例中,我们使用
world_x
之前导入的模式和
countryinfo
集合。因此,您发出的操作的格式是
,其中是对其执行操作的集合的名称。在以下示例中,操作是针对
集合执行的。
db.
collection_name
.operationcollection_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
. 该
_id
字段的值在同一集合中的所有文档中必须是唯一的。在 MySQL 8.0.11 及更高版本中,文档 ID 由服务器而非客户端生成,因此 MySQL Shell 不会自动设置
_id
值。_id
如果文档不包含该_id
字段,则8.0.11 或更高版本的 MySQL 服务器会设置一个值。较早 8.0 版本或 5.7 版本的 MySQL 服务器不会设置
_id
在这种情况下的值,因此您必须明确指定它。如果不这样做,MySQL Shell 将返回错误 5115 Document is missing a required field。有关详细信息,请参阅
了解文档 ID。
有关完整语法定义,请参阅CollectionAddFunction。
请参阅 了解文档 ID。