MySQL 8.0版本说明
MySQL 8.0源代码文档10bet官方网站
您可以使用修改()
方法更新集合中的一个或多个文档。X DevAPI提供了用于修改()
方法:
在文档中设置和取消设置字段。
追加、插入和删除数组。
对需要修改的文档进行绑定、限制和排序。
的修改()
方法的工作原理是过滤集合以只包含要修改的文档,然后对这些文档应用指定的操作。
在下面的例子中,修改()
方法使用搜索条件识别要更改的文档,然后设置()
方法替换嵌套的人口统计对象中的两个值。
mysql-py > db.countryinfo。修改(“代码=‘海’”)。set("demographic ", {" lifespan ": 78, "Population": 28})
修改文档后,请使用find ()
方法来验证更改。
要从文档中删除内容,请使用修改()
而且设置()
方法。例如,以下查询从匹配搜索条件的文档中删除GNP。
mysql-py > db.countryinfo。修改(" Name =西兰”).unset(国民生产总值)
使用find ()
方法来验证更改。
mysql-py > db.countryinfo。find("Name = 'Sealand'") {"_id": "00005e2ff4af00000000000000f4", "Name": "Sealand", "Code:": "SEA", "IndepYear": 1967, "geography": {"Region": "British Islands", "Continent": "Europe", "SurfaceArea": 193}, "government": {"HeadOfState": "Michael Bates", "GovernmentForm": "君主制"},"Population": {"Population": 27, "预期寿命":79}}
方法可将元素添加到数组字段中,或在数组中插入或删除元素array_append ()
,array_insert ()
,或array_delete ()
方法。下面的示例修改countryinfo
收集以启用跟踪国际机场。
第一个示例使用修改()
而且设置()
方法在所有文档中创建一个新的Airports字段。
谨慎
在不指定搜索条件的情况下修改文档时要小心;这样做将修改集合中的所有文档。
mysql-py > db.countryinfo.modify(“真正的”)。集(“机场”,[])
添加了Airports字段后,下一个示例使用array_append ()
方法将新机场添加到文档之一。美元。机场中的表示当前文档的Airports字段。
mysql-py > db.countryinfo。修改(" Name =法国”).array_append(" $。机场”、“ORY”)
使用find ()
看到变化。
mysql-py > db.countryinfo。find("Name = 'France'") {"GNP": 1424285, "_id": "00005de917d80000000000000048", "Code": "FRA", "Name": "France", "Airports": ["ORY"], "IndepYear": 843, "geography": {"Region": "西欧","Continent": "Europe", "SurfaceArea": 551500}, "government":{"元首":"Jacques Chirac", "GovernmentForm": "Republic"}, "Population": {"Population": 59225700, "预期寿命":78.80000305175781}}
方法可将元素插入到数组中的不同位置array_insert ()
方法指定要在路径表达式中插入哪个索引。在本例中,索引为0,即数组中的第一个元素。
mysql-py > db.countryinfo。修改(" Name =法国”).array_insert(" $。机场[0]”、“CDG”)
要从数组中删除元素,必须传递给array_delete ()
方法要删除的元素的索引。
mysql-py > db.countryinfo。修改(" Name =法国”).array_delete (" $ .Airports[1]”)
的MySQL参考手册提供了帮助您搜索和修改JSON值的说明。
看到CollectionModifyFunction查看完整的语法定义。