3 MongoDB update

 
更新又三个方法:
 
mongodb提供了很多操作符用于修改制定的字段,比如"$set"。
结构如下:
{ <update operator>: { <field1>: <value1>, ... }, <update operator>: { <field2>: <value2>, ... }, ... }
 
一些更新操作符,如$set,将在字段不存在的情况下创建字段。有关详细信息,请参阅个别更新操作符参考。
 
更新单个文档
下面的示例在库存集合上使用db.collection.updateOne()方法来更新第一个文档,其中item等于“paper”
db.inventory.updateOne( { item: "paper" }, { $set: { "size.uom": "cm", status: "P" }, $currentDate: { lastModified: true } } )
使用$set操作符更新size.uom和status的值。
使用$currentDate操作符将lastModified字段的值更新为当前日期。如果lastModified字段不存在,$currentDate将创建该字段。详情请参见$currentDate
 
更新多个文档
db.inventory.updateMany( { "qty": { $lt: 50 } }, { $set: { "size.uom": "in", status: "P" }, $currentDate: { lastModified: true } } )
类似更新单个文档,只是匹配条件不同
 
注意:
1.MongoDB中的所有写入操作都是在单个文档的级别的原子。有关MongoDB和Atomicity的更多信息,请参阅原子性和事务
2._id不允许修改。一旦设置,您就不能更新id字段的值,也不能用具有不同id字段值的替换文档替换现有文档。
3.对于写操作,MongoDB保留文档字段的顺序,以下情况除外:
3.1.id字段总是文档中的第一个字段。
3.2.包括重命名字段名的更新可能会导致文档中字段的重新排序。
4.对于写入安全,您可以指定MongoDB以进行写入操作所请求的确认级别。有关详细信息,请参阅写安全
 
 
MongoDB提供了以下方法来更新集合中的文档:
即使多个文档可能匹配指定的筛选器,但最多只更新一个匹配指定筛选器的文档。
更新与指定筛选器匹配的所有文档。
即使多个文档可能匹配指定的筛选器,但最多只替换匹配指定筛选器的单个文档。
更新或替换与指定筛选器匹配的单个文档,或更新与指定筛选器匹配的所有文档。默认情况下,db.collection.update()方法更新单个文档。要更新多个文档,请使用multi选项。
 
以下方法也可以更新集合中的文档:

posted @ 2021-11-03 20:57  aoeiuv  阅读(73)  评论(0编辑  收藏  举报