MongoDB的update和set

db.集合.update({参数1}, {参数2}, {参数3})参数1是筛选条件,通过条件找到数据,参数2是要修改的内容,要将找到的数据的内容修改成什么样,参数3是一个条件,来决定update是否要将所有符合条件的文档全部更改。

update的特点

  1. update默认只会修改符合条件的第一条数据,如果有多条数据符合条件,那么也只会修改第一条。如果想修改全部符合条件的文档,那么需要将第三个参数写为{milti:true}
  2. update默认覆盖式写入,也就是参数2是什么样,那么写完之后文档就是什么样,最多也就多一个id,因为默认不会把id覆写。如果想改某个字段的值而非整个文档覆写,需要使用一个$set

$set

$set是为了弥补update覆写的特点,可以根据条件找到文档,然后只修改文档中某些字段的值,而非覆盖式写入。

用法:db.users.update({age:21},{$set:{name:'wuhu'}}),既update参数2写为{$set:{xxx:yyy}}xxx是要设置的字段名,yyy是设置的值。

如果$set设置了原本就存在的字段,那么就是修改
如果设置了原本不存在的字段,那么就会新增字段。


例子

//用来查询
db.users.find()//插入10条数据,用于测试
var arr =[];
for(var i = 0; i < 10; i++){arr.push({name:'wc'+i, age:18+i});};
db.users.insertMany(arr);//将age为18的文档,更新为score:199,score原本不存在,但依然直接覆写了
db.users.update({age:18},{score:199})//将age为20的文档,改为name:wuhu,name原本存在,这里还是直接覆写
db.users.update({age:20},{name:'wuhu'})//将age为21的文档,设置为name为wuhu,结果是age还是21,name改为了wuhu,只更新没覆写
db.users.update({age:21},{$set:{name:'wuhu'}})//将age为22的文档,设置为name为bangbuzhule,gender为excited
//name原本就有,所以更新了,gender原本没用,这里直接新增了一个字段
db.users.update({age:22},{$set:{name:'bangbuzhule',gender:'excited'}})//将name为wuhu的所有文档的size字段改为18cm,multi为true就代表着将全部符合条件的文档进行更改
db.users.update({name:'wuhu'},{$set:{size:'18cm'}},{multi:true})

MongoDB的update和set的用法相关推荐

  1. Mongodb的update操作

    在前面的文章"mongodb 查询的语法"里,我介绍了Mongodb的常用查询语法,Mongodb的update操作也有点复杂,我结合自己的使用经验,在这里介绍一下,给用mongo ...

  2. 标准SQL的update语句三种用法

    标准SQL的update语句三种用法 一.环境: MySQL-5.0.41-win32 Windows XP professional   二.建立测试环境:   DROP TABLE IF EXIS ...

  3. sudo apt-get update 与upgrade的用法

    sudo apt-get update 与upgrade的用法 在windows下安装软件,我们只需要有EXE文件,然后双击,下一步直接OK就可以了.但在LINUX下,不是这样的.每个LINUX的发行 ...

  4. mysql更新语句用法_MySQL update 语句的正确用法

    以下的文章主要介绍的MySQL update 语句的实际用法,我们首先是以单表的UPDATE语句来引出实现MySQL update 语句的实际方案,以下就是文章的详细内容描述,望你看完之后会有收获. ...

  5. mysql for update用处_for update的作用和用法

    一.for update定义 for update是一种行级锁,又叫排它锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它 ...

  6. mongodb php update,MongoDB文档的更新(php代码实例)

    MongoDB更新文档分为两大类:文档替换,使用新文档完全替换掉旧文档 修改器,修改部分文档 文档替换 使用文档替换非常的简单,下面来看演示:$collect->insertOne(['name ...

  7. mongoDB之update和save操作

    mongoDB更新文档,通过update和save方法进行文档更新操作: update()方法                                                      ...

  8. MongoDB的update更新使用方法

    Update操作只作用于集合中存在的文档.MongoDB提供了如下方法来更新集合中的文档: db.collection.update() db.collection.updateOne() New i ...

  9. MySQL中for update的作用和用法

    一.for update定义 for update是一种行级锁,又叫排它锁. 一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行. 如果 ...

最新文章

  1. 三十一、具有快表的地址变换机构
  2. jQuery1.4的15个新特性实例精讲
  3. 博客园出现了奇怪的cookie问题
  4. 精益数据分析 | 你孜孜追求的“增长”可能只是自嗨
  5. HNU 11720 God Created The Integers
  6. LeetCode (合集)合并链表和数组
  7. 使用Emacs执行外部shell命令
  8. 银监计算机类 考试题库,银监会(计算机类)笔试资料-微观经济学试题库 .doc...
  9. java做http接口
  10. 大数据时代的数据挖掘是怎么做的?
  11. C语言自学完备手册(02)——变量的声明与定义
  12. numpy向量化函数
  13. win10计算机搜索记录怎么删除,win10系统清除电脑里搜索记录的操作方法
  14. 服务器中心地址,互联网时间同步服务器地址(国家授时中心服务器)
  15. ADAM A METHOD FOR STOCHASTIC OPTIMIZATION
  16. 父进程回收子进程之wait()函数使用解读
  17. 个人对*xx与**xx的理解
  18. 【BZOJ1645】[Usaco2007 Open]City Horizon 城市地平线 离散化+线段树
  19. 【FPGA】实战之创建项目
  20. 计算机专业调研报告图片,计算机专业毕业设计论文(计算机专业调研报告范文)...

热门文章

  1. MySQL数据库排序order by(asc、desc)
  2. docker 上传到自己的容器
  3. MATLAB_8-边缘检测_黄晓明圈出人脸
  4. 生成树协议,stp使用哪两个参数来选举根网桥?
  5. 可见面判别算法---可见面判别算法的分类
  6. Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)
  7. 阿里云面向企业效率的云上产品全解析——云呼叫中心
  8. 编程十年的十种武学境界
  9. hdu 5945 Fxx and game
  10. Fastlane实战(一):移动开发自动化之道