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. Locust性能测试5-参数化批量注册

    前言 实现场景:所有并发虚拟用户共享同一份测试数据,并且保证虚拟用户使用的数据不重复. 例如,模拟10用户并发注册账号,总共有100个手机号,要求注册账号不重复,注册完毕后结束测试 准备数据 虚拟用户 ...

  2. 树莓派3B新版raspbian系统换国内源

    树莓派新版系统更换了专门优化过的桌面环境PIXEL,正好手头有个闲置的TF卡决定刷上新版系统玩玩.下载刷系统过程很多教程页很简单.插卡,上电开机,释放卡上的剩余空间都很正常,因为树莓派官方源访问很慢下 ...

  3. Liferay中request

    在liferay中的请求分为renderRequest和actionRequest这两种请求的方式,portletRequest的子类有三个1renderRequest,2EventRequest3C ...

  4. SQL Server查询中特殊字符的处理方法

    SQL Server查询中,经常会遇到一些特殊字符,比如单引号“'”等,这些字符的处理方法,是SQL Server用户都应该需要知道的. 我们都知道SQL Server查询过程中,单引号“'”是特殊字 ...

  5. “System.Data”中不存在类型或命名空间名称“TypedTableBase”

    错误 1 命名空间“System.Data”中不存在类型或命名空间名称“TypedTableBase”(是否缺少程序集引用?)  解决方案 因为是把强类型DataSet文件绑定报表的项目中出现的错误, ...

  6. [转]使用C#开发ActiveX控件全攻略

    前言: 这段时间因为工作的需要,研究了一下ActiveX控件.总结如下: 先说说ActiveX的基本概念. 根据微软权威的软件开发指南MSDN(Microsoft Developer Network) ...

  7. NOSQL学习之二:MongoDB

    MongoDB是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,是当前NoSQL数据库中比较热门的一种. MongoDB使用C++开发.不支持SQL ...

  8. linux常用命令:diff 命令

    diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...

  9. python 代码覆盖率 coverage用法

    先装coverage: D:\test_python\e8_test>pip install coverageCollecting coverage  Downloading https://f ...

  10. web前端----jQuery属性操作

    知识点总结 1.属性 属性(如果你的选择器选出了多个对象,那么默认只会返回出第一个属性). attr(属性名|属性值) - 一个参数是获取属性的值,两个参数是设置属性值 - 点击加载图片示例 remo ...