📅  最后修改于: 2023-12-03 15:32:56.944000             🧑  作者: Mango
update()
方法是 MongoDB 中用于更新文档的方法。它允许开发者更新一个或多个文档,也可以使用一些选项来控制更新的行为。
update()
方法的语法如下:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
其中:
<query>
:用于匹配要更新的文档的查询条件,<update>
:用于指定如何更新匹配的文档的更新操作,upsert
:可选参数,表示如果没有匹配的文档,则插入一个新文档,默认为 false
,multi
:可选参数,用于指定是否更新所有匹配到的文档,默认为 false
,writeConcern
:可选参数,用于指定操作的确认级别。假设我们有以下集合:
> db.myCollection.find()
{ "_id" : ObjectId("615274631e31ba4297497ebd"), "name" : "John", "age" : 30 }
{ "_id" : ObjectId("615274891e31ba4297497ebe"), "name" : "Jane", "age" : 25 }
{ "_id" : ObjectId("615274c31e31ba4297497ebf"), "name" : "Bob", "age" : 40 }
我们可以使用 update()
方法来更新文档,例如将 age
属性大于等于 30 的所有文档的 name
属性改为 "Tom"
。
> db.myCollection.update(
{ age: { $gte: 30 } },
{ $set: { name: "Tom" } },
{ multi: true }
)
执行以上代码后,我们可以看到集合中的文档已经被更新了。
> db.myCollection.find()
{ "_id" : ObjectId("615274631e31ba4297497ebd"), "name" : "Tom", "age" : 30 }
{ "_id" : ObjectId("615274891e31ba4297497ebe"), "name" : "Jane", "age" : 25 }
{ "_id" : ObjectId("615274c31e31ba4297497ebf"), "name" : "Tom", "age" : 40 }
update()
方法更新的文档可能会增长,导致内存和存储空间的消耗,因此需要额外的注意;update()
方法不会自动删除文档的任何属性,除非更新操作显式地指定了这样做; update()
方法更新一个文档的权利是根据完成查询操作时,该进程拥有当前所选文件的独占访问权来执行的。