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