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. 简单的js动态显示当前时间

    js中获取当前时间首先我们要new一个时间对象 var data = new Date(); 然后可以点出很多方法.获取不同的时间格式 自己可以去尝试

  2. Javascript-涨工资案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. php7安装memchced扩展

    tar -zxvf memcached-3.0.3.tgz cd memcached-3.0.3 phpize yum install libmemcached libmemcached-dev ./ ...

  4. redis桌面管理工具 redis-desktop-manager使用指南(转)

    版权声明:转自 http://blog.csdn.net/li396864285/article/details/54629898     概要:一款好用的Redis桌面管理工具,支持命令控制台操作, ...

  5. 完整table

    .table-bordered{ border:1px solid #cccccc; } .table { border-spacing: 0;/*设置或检索当表格边框独立时(即border-coll ...

  6. mac下安装了brew

    使用mac后发现很多软件都可以通过终端命令brew...来安装. 查了一下,发现brew原来是osx系统上的软件包管理工具,全名是Homebrew,官网:https://brew.sh(这官竟然还包含 ...

  7. linux常用命令:find命令之xargs

    在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...

  8. python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法

    python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...

  9. Chrome 性能监测

    前端性能优化一直是前端工作中必不可少的一部分,但是我们如何知道哪些部分的性能有优化的空间呢?此时,Chrome 性能监测就派上用场了. 正所谓:知己知彼,百战百胜,只有确定了性能瓶颈,才能有条不紊地进 ...

  10. MySQL笔记(二)数据库对象的创建和管理

    学校用 sqlserver ,记录数据移植到 mysql 过程中的一些问题(对应数据类型,主键外键等). 索引: 查看数据的物理路径 查看表相关的信息(SHOW CREATE TABLE.DESC) ...