本文主要是介绍3 MongoDB update,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
更新又三个方法:
- db.collection.updateOne(<filter>, <update>, <options>)
- db.collection.updateMany(<filter>, <update>, <options>)
- db.collection.replaceOne(<filter>, <update>, <options>)
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.updateOne()
|
即使多个文档可能匹配指定的筛选器,但最多只更新一个匹配指定筛选器的文档。
|
db.collection.updateMany()
|
更新与指定筛选器匹配的所有文档。
|
db.collection.replaceOne()
|
即使多个文档可能匹配指定的筛选器,但最多只替换匹配指定筛选器的单个文档。
|
db.collection.update()
|
更新或替换与指定筛选器匹配的单个文档,或更新与指定筛选器匹配的所有文档。默认情况下,db.collection.update()方法更新单个文档。要更新多个文档,请使用multi选项。
|
以下方法也可以更新集合中的文档:
- db.collection.findOneAndReplace().
- db.collection.findOneAndUpdate().
- db.collection.findAndModify().
- db.collection.save().
- db.collection.bulkWrite().
这篇关于3 MongoDB update的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!