MongoDB数据更新方法干货篇的完整攻略如下:
MongoDB是一个非关系型数据库,更新数据的操作主要有以下几个方法:updateOne()、updateMany()、replaceOne()、findOneAndUpdate()、findOneAndReplace()和findOneAndDelete()。
其中,前四种方法用于更新数据,分别对应更新单一文档、更新多个文档、替换单一文档、查找并更新单一文档;而后三种方法则用于替换、删除单一文档。
updateOne()
方法用于更新一个文档。它的语法如下:
db.collection.updateOne(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>
}
)
其中<filter>
指定需要更新的文档,<update>
指定要进行的更新操作。这两个参数均为必填项。upsert
表示如果不存在指定文档则进行插入操作(可选项),writeConcern
表示写入条件(可选项)。
示例:假如我们有一个名为users
的集合,其中包含文档:
{ "_id" : 1, "name" : "Tom", "age": 25 }
{ "_id" : 2, "name" : "Jerry", "age": 30 }
{ "_id" : 3, "name" : "Mike", "age": 35 }
我们想更新其中"_id"为1的文档,将名字修改为“Tim”,年龄修改为28,可以使用以下代码进行更新:
db.users.updateOne({_id:1},{$set:{name:"Tim", age:28}})
该代码会将"_id"为1的文档的"name"属性值更新为“Tim”,"age"属性值更新为28。
updateMany() 方法用于更新符合指定过滤器条件的所有文档。它的语法如下:
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>
}
)
其中<filter>
指定需要更新的文档,<update>
指定要进行的更新操作。这两个参数均为必填项。upsert
表示如果不存在指定文档则进行插入操作(可选项),writeConcern
表示写入条件(可选项)。
示例:假如我们有一个名为users
的集合,其中包含文档:
{ "_id" : 1, "name" : "Tom", "age": 25 }
{ "_id" : 2, "name" : "Jerry", "age": 30 }
{ "_id" : 3, "name" : "Mike", "age": 35 }
我们想更新所有年龄大于等于30的文档,将名字修改为“Mike”,可以使用以下代码进行更新:
db.users.updateMany({age:{$gte:30}},{$set:{name:"Mike"}})
该代码会将"age"属性值大于等于30的所有文档的"name"属性值更新为“Mike”。
这里还有其他三种用于替换、删除单一文档的方法,分别是:replaceOne()、findOneAndUpdate() 和 findOneAndReplace(),详情可参考官方文档。
本文链接:http://task.lmcjl.com/news/18654.html