MongoDB 更新文档
在使用 MongoDB 时,更新文档是一项非常常见的操作。无论是修改用户信息、更新文章内容还是其他数据,你都需要学会如何更新文档。MongoDB 提供了多种方法来更新文档,接下来就让我们一起学习这些方法吧!
更新文档的方法
使用 update()
方法
update()
方法用于更新集合中的文档。默认情况下,它只会更新匹配的第一个文档。
语法:
db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)
示例:
假设你有一个名为 mycol
的集合,其中包含以下文档:
{ "_id" : ObjectId("5983548781331adf45ec5"), "title":"MongoDB Overview"}
{ "_id" : ObjectId("5983548781331adf45ec6"), "title":"NoSQL Overview"}
{ "_id" : ObjectId("5983548781331adf45ec7"), "title":"IoT Overview"}
你可以使用以下命令将标题为 "MongoDB Overview" 的文档的标题更新为 "New MongoDB Tutorial":
> db.mycol.update({'title':'MongoDB Overview'}, {$set:{'title':'New MongoDB Tutorial'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
如果你想更新多个文档,可以设置 multi
参数为 true
:
> db.mycol.update({'title':'MongoDB Overview'}, {$set:{'title':'New MongoDB Tutorial'}}, {multi:true})
使用 save()
方法
save()
方法用于替换集合中的现有文档。它会用传递给 save()
方法的新文档替换现有文档。
语法:
db.COLLECTION_NAME.save({_id:ObjectId(), NEW_DATA})
示例:
假设你想替换 _id
为 507f191e810c19729de860ea
的文档,可以使用以下命令:
> db.mycol.save({
... "_id" : ObjectId("507f191e810c19729de860ea"),
... "title":"IoT New Topic",
... "by":"IoT"
... })
WriteResult({
... "nMatched" : 0,
... "nUpserted" : 1,
... "nModified" : 0,
... "_id" : ObjectId("507f191e810c19729de860ea")
... })