语法

db.collection.update(<query>, //update的查询条件<update>, //更新对象文档,含操作符功能使用{//可选参数upsert:<boolean>,multi:<boolean>,writeConcern:<document>,collation:<document>}
)

用update命令在集合里更新一条或多条文档记录。
db为当前数据库、collection为指定集合名称、update为更新命令。

参数名称 说明
query update的查询条件,类似SQL update 查询 where字句后面的查询条件
update update的更新对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询set子句后面的更新内容
upsert 可选。如果不存在update的记录,是否插入objNew:true为插入,默认是false,不插入
multi 可选,MongoDB默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来的多条记录全部更新
writeConcern 可选。自定义写出错确认级别
collation 可选。指定特定国家语言的更新归类规则
  1. 更新成功,返回WriteResult({"nUpdated":n})对象
  2. 更新失败:返回结果中会包含WriteResult.writeConcernError对象字段内容

修改一条简单文档

先插入一条订单信息,包含名称、数量、明细

更新订单名称为"商品购物单2":

修改某一值用$set操作符

将数量加5:

显示:amount:35变为amount:40
修改数值,做加法运算。直接用$inc操作符,可以是正数、负数,也可以是小数。

将amount数值翻倍:

显示:amount:40变为amount:80
修改数值,做乘法运算。直接用$mul操作符,可以是正数、负数也可以是小数。

修改键名:


键名从amount变为bmount。
修改错误字段的键名,可以直接用$rename操作符。

删除字段:


bmount字段已经被删除。
删除一个字段,可以用$unset操作符。

$min


$min可以将给出的值与当前文档字段值进行比较,当给定值较小时则修改当前文档值为给定值。

$max


$max可以将给出的值与当前文档字段进行比较,当给定值较大时则修改当前文档值为给定值

修改一条文档里的数组和嵌套文档

对文档里的子文档值进行修改,可以通过主Key.SubKey的组合来实现子我能挡字段对应值的修改;对于数组值的修改,可以通过Key.Number的方式指定修改数组值,Number从0,1…开始,对应数组的第一个、第二个下标…

  1. MongoDB数组下标从0开始,"detail.1"表示数组第二个元素
  2. 引用数组或嵌套文档对象时,都需要加"",如"detail.1"、“overview.address”,中间用点号隔离

多文档修改

默认情况下update命令都执行修改一条文档,修改多条文档需要采用multi选项

将面粉价格小于30的记录,修改为40

增加文档字段

Update命令在特定情况下,可以增加文档的字段,甚至实现insert命令功能。这个特定条件是要修改的文档没有要修改的字段,而且update命令带upsert选项。

简化命令

  1. db.collection.updateOne() 与update()唯一区别是少了multi选项,也就是说该命令只适用与符合条件的一条文档的修改。
  2. db.collection.updateMang() 与update()唯一的区别是命令少了multi选项,也就是说该命令 只适用于符合条件的多条文档的修改任务。
  3. db.collection.replaceOne()与update()区别有两处,一个没有multi,另外一个在第二个参数(update)中不能有更新操作符。

MongoDB——更新操作详解相关推荐

  1. java查询到更新之前的数据_Java对数据库的查询和更新操作详解

    这篇文章主要介绍了使用Java对数据库进行基本的查询和更新操作,是Java入门学习中的基础知识,需要的朋友可以参考下 数据库查询 利用Connection对象的createStatement方法建立S ...

  2. MongoDB——查询操作详解

    查询语法 db.collection_name.find (query, //查询条件projection //可选,指定需要返回的字段:默认返回所有字段 ) 查询集合所有文档 可以在find()后调 ...

  3. MongoDB——聚合操作详解

    聚合(Aggregation)为集合文档数据提供各种处理数据方法,并返回计算结果. MongoDB提供了3种方式来执行聚合命令: 聚合管道方法 map-reduce方法 单一目标聚合方法 1. 聚合管 ...

  4. SCCM 2007 R2部署、操作详解系列之部署篇

    SCCM 2007 R2部署.操作详解系列之部署篇 导语: 大家好,我是John Cai(蔡建涛),欢迎大家来到我的博客-E网情深http://johncai.blog.51cto.com/.今天,我 ...

  5. C 和 C++ 文件操作详解

    来源:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551662.html 来源:http://www.cnblogs.com/likebet ...

  6. OSCache操作详解+标签使用

    OSCache操作详解+标签使用 1.OSCache是什么?    OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能.OSC ...

  7. python excel数据处理教程pdf_python对excel操作详解.pdf

    python对excel操作详解 拟 制 人 胡张东 太仓同维电子有限公司 审 批 人 xxx 测试中心软件测试科 时 间 2013-11-04 Python对Excel操作 详解 文档摘要: 本文档 ...

  8. QT QtableView操作详解

    本文实现了使用QtableView控件来显示数据,数据源使用txt文本作为数据源,使用了QStandardItemModel作为数据模型来实现了对TableView空间的初始化,和对txt数据源的增删 ...

  9. ILI9341的使用之【四】RGB接口操作详解

    <ILI9341的使用之[一]TFT-LCD原理(转载)> <ILI9341的使用之[二]ILI9341介绍> <ILI9341的使用之[三]ILI9341系统通信接口模 ...

最新文章

  1. Netty入门教程——认识Netty
  2. 新版蚂蚁网有抄袭怪兽吗?
  3. UAVStack的慢SQL数据库监控功能及其实现
  4. Python 调试:step into/step out/step over 的区别
  5. php函数计算加法,JavaScript_javascript实现一个数值加法函数,废话不多说,直接奉上代码 JS - phpStudy...
  6. python中的apply(),applymap(),map() 的用法和区别
  7. 关于substring的理解
  8. 【android】getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
  9. anaconda 安装 pytorch
  10. 转错误 x error LNK1104: 无法打开文件“E:\xxxx\Debug\xxxx.exe”
  11. PHP (20140510)深入浅出 JavaScript 变量、作用域和内存 v 0.5
  12. 家居品牌如何在小红书上推广?家居产品推广看这里
  13. 游戏服务器背包设计与实现
  14. Office下载记录
  15. 新手小白适合学习什么编程语言
  16. AndroidQ 分屏窗口模式 (AMS部分)
  17. 基于MATLAB的求解线性方程组(附完整代码和例题)
  18. windows窗口分析,父窗口,子窗口,所有者窗口
  19. 1700人参加的钢铁行业盛会,下面是你必须知道的!
  20. 笔记:caffe安装编译,并用ssd gpu训练自己的数据集

热门文章

  1. 侯捷是个自恋狂,建议大家不要读他翻译的书
  2. 自动化测试经典面试题-定位不到元素
  3. SitePoint Podcast#173:释放混乱的猴子
  4. ASEMI肖特基二极管型号大全
  5. Smart Tomcat插件的使用详解
  6. 微光图像增强的零参考深度曲线估计
  7. 【硬件接口】一文带你看懂什么是液晶显示屏中EDP接口?
  8. Emgu CV3+C#图像处理(一):Emgu CV学习目录+EmguCV安装配置与使用
  9. 金融时间序列分析:1. 基础知识
  10. PTA|程序设计类实验辅助教学平台:基础编程题目集:编程题7-3