MongoDB – Update() 方法
update()方法更新 MongoDB 集合中现有文档中的值。当您更新文档时,_id 字段的值保持不变。默认情况下, db.collection.update() 方法更新单个文档。包括选项 multi: true 以更新与给定查询匹配的所有文档。此方法可用于单次更新文档以及多文档。
句法:
db.COLLECTION_NAME.update({SELECTION_CRITERIA}, {$set:{UPDATED_DATA}}, {
upsert: ,
multi: ,
writeConcern: ,
collation: ,
arrayFilters: [ , ... ],
hint:
})
参数:
- 第一个参数是文档形式的旧值。文档是由文件和值对创建的结构,类似于 JSON 对象。
- 第二个参数必须包含$set关键字以更新以下指定文档值。
- 第三个参数是可选的。
可选参数:
- Upsert:该参数的默认值为false。当它为真时,当没有文档与更新方法中的给定条件匹配时,它将在集合中创建一个新文档。
- multi:该参数的默认值为false。当为 true 时,update 方法更新所有满足查询条件的文档。否则,它只会更新一个文档。
- writeConcern:仅在您不想使用默认写关注时使用。该参数的类型是文档。
- 排序规则:它指定使用排序规则进行操作。它允许用户为字符串比较指定特定于语言的规则,例如字母和重音标记的规则。该参数的类型是文档。
- arrayFilters:它是一个过滤器文档数组,用于指示要修改哪些数组元素以对数组字段进行更新操作。这个参数的类型是一个数组。
- 提示:它是一个文档或字段,指定用于支持过滤器的索引。它可以采用索引规范文档或索引名称字符串,如果您指定的索引不存在,则会给出错误。
例子:
在以下示例中,我们正在使用:
- Database: gfg
- Collections: student
- Document: Three documents contains name and the age of the students
- 将 name 键为 avi 值的文档名称更新为 hello world。
db.student.update({name:"avi"},{$set:{name:"helloword"}})
这里,第一个参数是要更改其值的文档{name:”avi”},第二个参数是 set keyword 表示将以下匹配的键值设置(更新)为旧的键值。
注意:键的值必须与集合中定义的数据类型相同。
- 将名称为 prachi 的文档的年龄更新为 20。
db.student.update({name:"prachi"},{$set:{age:20}}
这里,第一个参数是要更改值的文档{name:”prachi”},第二个参数是set关键字,表示将age字段的值设置(更新)为20。