10bet官方网站文档之家
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 本手册摘录

20.3.3.4修改文档

你可以使用调整()方法在集合中更新一个或多个文档的方法。X devapi提供了附加的方法调整()方法:

  • 在文档中设置和未命令字段。

  • 追加,插入和删除数组。

  • 绑定,限制和对要修改的文档进行排序。

设置和未设置文档字段

调整()方法通过过滤集合来仅包含要修改的文档,然后应用您指定给这些文档的操作。

在以下示例中,调整()方法使用搜索条件来识别要更改的文档,然后是放()方法替换嵌套人口统计数据中的两个值。

mysql-js > db.countryinfo。修改(“代码=‘海’”)。设置("人口统计",{"预期寿命":78,"人口":28})

修改文档后,使用找()方法来验证更改。

要从文档中删除内容,请使用调整()unset()方法。例如,下面的查询从匹配搜索条件的文档中删除GNP。

mysql-js > db.countryinfo。修改(" Name =西兰”).unset(国民生产总值)

使用找()方法来验证更改。

mysql-js> db.countryinfo.find(“name ='sealand'”){“_id”:“00005e2ff4af0000000000000000f4”,“姓名”:“sealand”,“代码:”:“Sea”,“Indepyear”:1967,“地理”:{“地区”:“英国群岛”,“大陆”:“欧洲”,“surfacearea”:193},“政府”:{“头脑”:“迈克尔贝茨”,“政府态度”:“君主制”},“人口统计学”:{“人口”:27,“LifeExpectancy”:79}}
追加,插入和删除数组

要将元素追加到数组字段,或插入或删除数组中的元素,请使用arrayAppend ()restrinsert(), 或者ArrayDelete()方法。以下示例修改了CountryInfo.收集,以便追踪国际机场。

第一个例子使用了调整()放()在所有文档中创建新机场字段的方法。

警告

在没有指定搜索条件的情况下修改文档时,请谨慎使用;这样做会修改集合中的所有文档。

mysql-js> db.countryinfo.modify(“true”)。设置(“机场”,[])

使用机场字段添加,下一个示例使用arrayAppend ()方法向其中一个文档添加新机场。美元。机场在以下示例中表示当前文档的机场字段。

mysql-js> db.countryinfo.modify(“name ='法国')。arrayappend(”$。机场“,”ory“)

找()看到改变。

mysql-js> db.countryinfo.find(“name ='法国'){”gnp“:1424285,”_id“:”00005de917d8000000000000000048“,代码”:“fra”,“名称”:“法国”,“france”,“机场": [ "ORY" ], "IndepYear": 843, "geography": { "Region": "Western Europe", "Continent": "Europe", "SurfaceArea": 551500 }, "government": { "HeadOfState": "Jacques Chirac", "GovernmentForm": "Republic" }, "demographics": { "Population": 59225700, "LifeExpectancy": 78.80000305175781 } }

若要在数组的不同位置插入元素,请使用restrinsert()指定要在路径表达式中插入的索引的方法。在这种情况下,索引为0,或阵列中的第一元素。

mysql-js > db.countryinfo。修改(" Name =法国”).arrayInsert(" $。机场[0]”、“CDG”)

要从数组中删除元素,必须传递给ArrayDelete()方法要删除的元素的索引。

mysql-js> db.countryinfo.modify(“名称='法国')。Arraydelete(”$。机场[1]“)
相关信息