MongoDB(课时17 更新函数)
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 更新函数)的更多相关文章
- 课时17:函数:Python的乐高积木
目录: 一.创建和调用函数 二.函数的参数 三.函数的返回值 四.课时17课后习题及答案 为了使得程序得代码变得简单,就需要把程序分解成较小得组成部分.有三种方法可以实现:函数.对象.模块. **** ...
- MongoDB (课时1,2)
1.数据库之中支持的的SQL语句是由IBM开发出来的,使用并不麻烦,就是几个简单的单词:select, from, where, group by, having, order by.目前最流行的数 ...
- 3.16 draw 3.17 更新函数
3.16 draw virtual void draw(); void HelloWorld::draw() { CCSize size = CCDirector::sharedDirector()- ...
- 面向对象程序设计-C++_课时17函数重载和默认参数
函数重载,区别一是参数类型不同,二是参数个数不同. 默认参数可以多于1个,但必须放在参数序列的后部. 尽量不要用默认参数,会影响阅读 error C2668: “f”: 对重载函数的调用不明确 #in ...
- 课时17.WebStorm安装(理解)
开发工具(工欲善其事,必先利其器) 为了让大家更快的融入到编程的世界中去,不被繁琐的英文单词所困扰,不用每天编写很多没有意义的重复代码,提升大家的开发效率,今后的课程中我们统一采用开发工具来编写网页 ...
- MongoDB小结17 - find【查询条件$or】
我们再添加一个游泳的人,并用$in查询游泳的人 db.user.find({"hobby":{"$in":["swimming"]}},{& ...
- 在 CentOS7 上安装 MongoDB
在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...
- 初识Mongodb之[CURD]-PHP版
行动 在了实践之前,希望大家看一下上面的学习资源,了解一下基本操作. 数据连接初始账号password 账号:admin password:admin 首先我们建立一个文件:mongodb.php,设 ...
- Mongodb 参数说明及常见错误处理
在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录:cd /usr/local 3 在当前目录下 ...
随机推荐
- [LeetCode] 394. Decode String_Medium tag: stack 666
Given an encoded string, return it's decoded string. The encoding rule is: k[encoded_string], where ...
- isKindOfClass isMemeberOfClass 的区分
isKindOfClass If you use such constructs in your code, you might think it is alright to modify an ob ...
- 弱分类器的进化--Bagging、Boosting、Stacking
一般来说集成学习可以分为三大类: 用于减少方差的bagging 用于减少偏差的boosting 用于提升预测结果的stacking 一.Bagging(1996) 1.随机森林(1996) RF = ...
- JS在不同js文件中互相调用
例如有这样一个html,里面有一个按钮,当按下时调用b.js文件中的方法b().而b()中又要调用a.js文件中的方法a().若要实现这个功能,必须注意,将要引入的Js文件代码放在</body& ...
- jmeter 测试websocket接口(二)
1.到https://github.com/maciejzaleski/JMeter-WebSocketSampler下载Jmeter的WebSocket协议的支持插件:JMeterWebSocket ...
- selenium webdriver模拟鼠标键盘操作
在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...
- TraceSource记录程序日志
1.配置文件 <system.diagnostics> <sources> <source name="TraceError" switchValue ...
- #C++初学记录(贪心算法#结构体#贪心算法)
贪心算法#结构体 Problem Description "今年暑假不AC?" "是的." "那你干什么呢?" "看世界杯呀,笨蛋 ...
- explain查看sql执行计划
http://www.cnblogs.com/wolf-sun/p/5291563.html 一该命令作用:该命令会向您展示查询是如何被执行的. 1.各个项的含义:https://blog.csdn. ...
- python excel操作 练习-#操作单列 #操作A到C列 #操作1到3行 #指定一个范围遍历所有行和列 #获取所有行 #获取所有列
##操作单列#操作A到C列#操作1到3行#指定一个范围遍历所有行和列#获取所有行#获取所有列 #coding=utf-8 from openpyxl import Workbook wb=Workbo ...