更新文档主要有以下几种方法:

  • db.collection.updateOne(filter, update, options)

  • db.collection.updateMany(filter, update, options)

  • db.collection.replaceOne(filter, update, options)

另外MongoDB提供了更新运算符,更加方便我们进行文档的更新。其使用方法如下:

{
update operator: { field1: value1, ... },
update operator: { field2: value2, ... },
...
}

其中有一些更新运算符,比如$set,当它所设置的字段不存在时,将会新增这个字段

更新一个文档

db.collection.updateOne(
{ item: "paper"},
{
$set: {"size.uom": "cm", status: "P"},
$currentData: {lastModified: true}
}
)

以上方法将会更新匹配到的第一个item字段值为"paper"的文档,$set运算符会将size.uom字段的值设置为"cm",status字段的值设置为"P"。$currentData运算符会将lastModified字段设置为当前时间,如果这个字段不存在,将新增这个字段

更新多个文档

如果将上述方法中的updateOne()改为updateMany(),则可以更新匹配到的所有文档

替换一个文档

如果想替换一个文档,用于替换的文档(即第二个参数)必须全有field: value对组成,不能包含更新运算符

MongoDB学习记录(四) - MongoDB的"增查改删"操作之"改"的更多相关文章

  1. MongoDB学习记录(二) - MongoDB的"增查改删"操作之"增"

    如果做插入文档操作的集合不存在,那么集合将被创建 db.collection.insertOne() insertOne为collection插入一条文档,如果文档的_id字段未指定,MongoDB会 ...

  2. MongoDB学习记录(三) - MongoDB的"增查改删"操作之"查"

    查找使用的方法: db.collection.find() 查找所有文档 db.collection.find({})或者db.collection.find({}) 指定键值对 db.collect ...

  3. Mongodb学习笔记四(Mongodb聚合函数)

    第四章 Mongodb聚合函数 插入 测试数据 ;j<;j++){ for(var i=1;i<3;i++){ var person={ Name:"jack"+i, ...

  4. MongoDB学习记录

    一.操作符 "$lt" :"<""$lte" :"<=""$gt" :"> ...

  5. Mongodb学习笔记一(Mongodb环境配置)

    Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...

  6. leveldb 学习记录(四)Log文件

    前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...

  7. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  8. 4.VUE前端框架学习记录四:Vue组件化编码2

    VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  9. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

随机推荐

  1. window django-https 证书

    1.openssl 下载 http://slproweb.com/products/Win32OpenSSL.html 根据你的系统来选择不同的版本下载安装,选带light的比较小. 2.安装后添加环 ...

  2. sys.exit(main(sys.argv[1:]))

    sys.argv sys.argv[]说白了就是一个从程序外部获取参数的桥梁. 首先我们需要import sys,sys是python3的一个标准库,也就是一个官方的模块.封装了一些系统的信息和接口, ...

  3. 小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布

    Weixin-App-CMS 是捷微团队开发的微信小程序CMS开源项目,涵盖了微网站的基本功能,能够快速发布简单易用的小程序网站.采用工具“微信web开发”上传小程序,即可快速体验发布体验小程序网站. ...

  4. 网络yum源制作

    思路:在网络上准备一个主机,在其中安装一个web服务器软件(比如apache),然后创建一个目录,在这个目录中准备上yum仓库的全部资源,如果用户可以通过网络访问到该主机的这个目录,那么这个目录就成为 ...

  5. pyparsing自定义解析规则

    1.Word(token) 用于匹配由允许的字符集组成的单词,常见的错误是使用特定字符串Word("expr")匹配"expr" - L {alphas}  字 ...

  6. 学生管理系统(javaweb版)

    准备用javaweb 的技术做一个简单的学生管理系统 打算不用登陆的那种,直接进入管理界面. 完成增删改查的功能. 慢慢开始更新,先写那么多.

  7. 项目管理利器maven学习笔记(二):

  8. jmeter-用户定义的变量

    添加-配置元件-用户定义的变量 请求中出现变量值的位置,用${_tbip}替换 脚本执行完成,在查看结果树中debug sampler中可以看见变量名和变量值

  9. 20175314 实验三 敏捷开发与XP实践

    20175314 实验二 Java面向对象程序设计 一.实验内容 XP基础 XP核心实践 相关工具 二.实验步骤 (一)代码格式化 创建"175314.exp3"项目,在该项目下创 ...

  10. checkpoint NGFW VM安装

    step1:在VMworkstation中创建虚拟机向导,选择Linux 2.6内核 64位如下图: 虚拟机的配置建议如下: RAM:至少8GB Disk:120G CPU:四核 step2:使用IO ...