3.4.3 数据更新操作

MongoDB数据存的是副本数据, 最终的数据还要保存在传统的数据库里,所以如果关系型数据库里数据变了,最好的方法是删除里面的MongoDB数据重新插入。

在MongoDB里面对于数据的更新操作提供了两类函数:save()、update()

3.4.3.1 函数的基本使用

修改数据最直接的使用函数是update()函数,但是update()函数语法要求很麻烦。

  • 语法:db.集合.update(更新条件, 新的对象数据, upsert, multi)

新的对象数据:里面可以有一些操作符。

upsert:更新的数据不存在,则增加一条新的内容(true为增加,false为不增加)(upsert 更新插入)

multi:表示是否只满足条件的第一行记录(设置为false,只更新第一条,为true全更新)(multi多)

范例:更新存在的数据——更新年龄是19岁的人的成绩为100分,只更新其中一条。

db.students.update({"age" : 19}, {"$set" : {"score" : 100}}, false, false)  

# 更新条件:{"age" : 19}

# 新的对象数据:里面包含的操作符{"$set" : {"score" : 100}}

# "$set"为修改器,这里只用来修改数据,其实集合结构也能修改,因为MongoDB是无模式的

# 第一个为false:表示更新的数据不存在的话不增加

# 第二个为false:表示只更新一条

表示只更新了一条。

范例:更新年龄是19岁的人的成绩为100分,只更新其中多条。

db.students.update({"age" : 19}, {"$set" : {"score" : 100}}, false, true)

# 第二个为true表示更新多条

表示匹配了12条,更新了11条,有一条前面已经更新了。

范例:更新不存在的数据

db.students.update({"age" : 30}, {"$set" : {"name" : "不存在"}}, true, false)

# 第一个为true表示为数据不存在的话增加

"nMatched" : 0表示匹配数为0  "nUpserted" : 1表示更新数为1  "nModified" : 0表示修改数为0

MongoDB(课时17 更新函数)的更多相关文章

  1. 课时17:函数:Python的乐高积木

    目录: 一.创建和调用函数 二.函数的参数 三.函数的返回值 四.课时17课后习题及答案 为了使得程序得代码变得简单,就需要把程序分解成较小得组成部分.有三种方法可以实现:函数.对象.模块. **** ...

  2. MongoDB (课时1,2)

    1.数据库之中支持的的SQL语句是由IBM开发出来的,使用并不麻烦,就是几个简单的单词:select, from, where,  group by, having, order by.目前最流行的数 ...

  3. 3.16 draw 3.17 更新函数

    3.16 draw virtual void draw(); void HelloWorld::draw() { CCSize size = CCDirector::sharedDirector()- ...

  4. 面向对象程序设计-C++_课时17函数重载和默认参数

    函数重载,区别一是参数类型不同,二是参数个数不同. 默认参数可以多于1个,但必须放在参数序列的后部. 尽量不要用默认参数,会影响阅读 error C2668: “f”: 对重载函数的调用不明确 #in ...

  5. 课时17.WebStorm安装(理解)

    开发工具(工欲善其事,必先利其器) 为了让大家更快的融入到编程的世界中去,不被繁琐的英文单词所困扰,不用每天编写很多没有意义的重复代码,提升大家的开发效率,今后的课程中我们统一采用开发工具来编写网页 ...

  6. MongoDB小结17 - find【查询条件$or】

    我们再添加一个游泳的人,并用$in查询游泳的人 db.user.find({"hobby":{"$in":["swimming"]}},{& ...

  7. 在 CentOS7 上安装 MongoDB

    在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...

  8. 初识Mongodb之[CURD]-PHP版

    行动 在了实践之前,希望大家看一下上面的学习资源,了解一下基本操作. 数据连接初始账号password 账号:admin password:admin 首先我们建立一个文件:mongodb.php,设 ...

  9. Mongodb 参数说明及常见错误处理

       在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录:cd /usr/local 3 在当前目录下 ...

随机推荐

  1. ArrayList序列化

    ArrayList源代码中的 private transient E[] elementData; 声明为transient,为什么还可以序列化成功呢? ArrayList重写了 private vo ...

  2. 获取多达 16GB 的 Dropbox 免费空间!

    Dropbox官网

  3. win10 + cuda(v9.0) 安装TensorFlow-gpu版

    之前在实习公司的电脑上装过TensorFlow-gpu,那时候很快就装好了.但在自己的笔记本上装时,却搞了很久... 一部分原因是因为用校园网下载cuda toolkit 和cudnn ,总是在最后时 ...

  4. \r与\n

    \n是换行,英文是New line \r是回车,英文是Carriage return

  5. sql可重复执行语句例子

    1.添加字段 SET @add_key_type_to_report = (SELECT IF( (SELECT count(1) FROM INFORMATION_SCHEMA.COLUMNS WH ...

  6. MySQL从删库到跑路_高级(七)——事务和锁

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.事务简介 1.事务简介 事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作. 2.事物的特效 ...

  7. Protobuffer简介c#

    一.Protobuffer和json深度对比 JSON相信大家都知道是什么东西,如果不知道,那可就真的OUT了,GOOGLE一下去.这里就不介绍啥的了. Protobuffer大家估计就很少听说了,但 ...

  8. suse zypper 添加源

    一.查看源和仓库 1.查看repos (软件仓库) zypper lr 2.查看services(软件源) zypper ls 二.删除源和仓库 1.删除软件仓库 zypper rr name 2.删 ...

  9. Hive 大数据倾斜总结

    在做Shuffle阶段的优化过程中,遇 到了数据倾斜的问题,造成了对一些情况下优化效果不明显.主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些 Counters得出 ...

  10. 用rewrite把旧域名直接跳转到新域名的nginx配置

    用rewrite把旧域名直接跳转到新域名的nginx配置 把下面代码保存到daziran.com.conf 放在nginx配置目录下 /etc/nginx/conf.d/ #把旧域名zdz8207直接 ...