MongoDB更新文档

3.4 MongoDB更新文档

MongoDB 使用 update()save() 方法来更新集合中的文档。

update() 更新

update() 方法用于更新已存在的文档。语法格式如下:

java 复制代码
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。

  • update : update的对象和一些更新的操作符(如,inc...)等,也可以理解为sql update查询内set后面的

  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

  • writeConcern :可选,抛出异常的级别。

html 复制代码
-- 更新name值shanjige为sjg
> db.myTable.update({"name":"shanjige"},{$set:{"name":"sjg"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

save() 更新

save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。语法格式如下:

复制代码
db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

参数说明:

  • document : 文档数据。

  • writeConcern :可选,抛出异常的级别。

复制代码
-- 更新文档name值renzha为rz
> db.myTable.save({ "_id" : ObjectId("62a46eae4c256eb2b320f20c"), "id" : 5, "name" : "rz", "address" : "tangshan" })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
​
-- 格式化查询myTable所有数据
> db.myTable.find().pretty()
{
    "_id" : ObjectId("62a46dee4c256eb2b320f208"),
    "id" : 1,
    "name" : "goudan",
    "address" : "beijing"
}
{
    "_id" : ObjectId("62a46e194c256eb2b320f209"),
    "id" : 2,
    "name" : "mz",
    "address" : "beijing"
}
{
    "_id" : ObjectId("62a46e644c256eb2b320f20a"),
    "id" : 3,
    "name" : "sjg",
    "address" : "beijing"
}
{
    "_id" : ObjectId("62a46e644c256eb2b320f20b"),
    "id" : 4,
    "name" : "haonan",
    "address" : "jianshazui"
}
{
    "_id" : ObjectId("62a46eae4c256eb2b320f20c"),
    "id" : 5,
    "name" : "rz",
    "address" : "tangshan"
}

MongoDB为什么要更新文档

  1. 数据的变化:随着业务的发展和用户需求的变化,文档中的数据也会发生变化,因此需要更新文档来反映最新的信息。

  2. 数据的完整性:更新文档可以确保数据的完整性,避免数据的不一致性和错误。

  3. 数据的准确性:及时更新文档可以确保数据的准确性,使得数据库中的信息始终保持最新状态。

  4. 业务需求:更新文档可以满足新的业务需求,使得数据库能够支持更多的功能和应用场景。

  5. 性能优化:更新文档可以优化数据库的性能,提高数据的访问速度和查询效率。

总之,更新文档可以保持数据库中的数据与实际情况保持一致,满足业务需求,并优化数据库的性能。

Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客

相关推荐
Ocean☾2 分钟前
前端基础-html-注册界面
前端·算法·html
顶呱呱程序10 分钟前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法
爱吃生蚝的于勒31 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
羊小猪~~35 分钟前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
superman超哥1 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
用户8007165452001 小时前
HTAP数据库国产化改造技术可行性方案分析
数据库
王哈哈^_^1 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
星沁城1 小时前
240. 搜索二维矩阵 II
java·线性代数·算法·leetcode·矩阵
脉牛杂德1 小时前
多项式加法——C语言
数据结构·c++·算法
legend_jz1 小时前
STL--哈希
c++·算法·哈希算法