语法:db.CollectionName.upadte(查询表达式,新值,选项);

查询表达式:定位哪些列是要被修改的列(即使查询表达式能命中多行,默认也只改一行,如果想改多行,可以用multi选项,在可选项中将会讲到)

新值:要被修改的列,要被修改成的样子

选项:可选项

例:db.stu.update({name:’poxi’},{name:’yanpoxi’})

注意:上面的操作是指选中stu表中name属性值为’poxi’的文档,并把其文档值改为{name:’yanpoxi’}

结果:文档中的其他列都不见了,改后只有_id和name这两列,即新文档直接替换了旧文档,而不是修改

如果是想修改文档的某列,可以使用$Set关键字

db.CollectionName.update(查询表达式,{$Set:新值});

db.CollectionName.update({name:’poxi},{$Set:{name:’yanpoxi’}});

关键字还有很多,下面我们插入一条新的文档:

sb.stu.insert({name:’kukong’,age:’500’,sex:’m’,jingu:’true’});

$set:修改某一列的值:我们把kukong改为dzsf(斗战胜佛)

$inc:某一列的值自增:取经花费16年,年龄变为516

$rename:修改某一列的名称:我们把性别这一列(sex),改为gender

$unset:删掉某一列:取经成功后,取掉了紧箍,所以删掉jingu这一列。

db.stu.update({name:’kukong’},{$set:{name:’dzsf’},$inc:{age:’16’},$rename:{sex:gender},$unset{‘jingu’:1}})

解释:

红色部分是查询表达式(用于匹配哪些记录需要修改)

蓝色部分是新值(设置新值使用了很多关键字)

这里面没有Option

$setOnInsert:当upsert为true时,并且发生了insert,可以补充字段(upsert是可选项,意思是如果没有匹配的行,则直接插入该行)

Option的作用:

{upsert:true/false,multi:true/false}

Upsert---是指没有匹配的行,则直接插入该行(和mysql中的replace一样)

例:本来是没有name的属性值为无用的文档,所以直接插入了。 db.stu.update({name:’wuyong’},{$set:{name:’junshiwuyong’}},{upsert:true});

multi:是指修改多上,前面我们提到过,即使查询表达式能匹配多行,默认也只修改一行,如果想修改多行,需要设置multi:true

db.stu.update({gender:’m’},{$set:{gender:’male}});只修改一行

db.stu.update({gender:’m’},{$set:{gender:’male’}},{multi:true});所有gender属性值为’m’的文档,都修改为gender:’male’

解释:红色的是查询表达式,蓝色的是设置新值,绿色的是Option

mongo: 改的更多相关文章

  1. mongo 改数据库名称

    用命令 db.copyDatabase('old_name', 'new_name') 可以备份出一个新的数据库. 然后  use old_name 并db.dropDatabase() 即可删除旧的 ...

  2. 谈一谈NOSQL的应用,Redis/Mongo

    1.心路历程 上年11月份来公司了,和另外一个同事一起,做了公司一个移动项目的微信公众号,然后为了推广微信公众号,策划那边需要我们做一些活动,包括抽奖,投票.最开始是没有用过redis的,公司因为考虑 ...

  3. segmentfault.com mongo出识以及对数组的操作

    https://segmentfault.com/a/1190000003951602 首先推荐个工具,no-sql-manager-for-mongodb-professional,虽然收费,但是每 ...

  4. mongo的安装

    windows: 1 安装scons (1): 下载python2.7, 使用x86_32位,因为scons只有32位安装包可用, http://www.python.org/download/rel ...

  5. c#开发Mongo笔记第八篇

    到今天为止,Mongo开发的权限管理系统功能就做完了,剩下的就是完善构架,优化结构,只是现在c#操作Mongo的各种操作基本都掌握了 说到权限管理系统,其实再简单不过了,在关系型数据的是时代,我们通常 ...

  6. c#开发Mongo笔记第四篇

    今天是个伟大的日子,不得不说小苹果的歌词真是深入人心啊. 不过今天伟大并不是因为我种下一颗种子,而是我从今天不再写demo,而是进入项目的正式开发当中,毕竟项目时间有限(想必各位码农也都深有体会吧), ...

  7. Mongo命令行中执行CRUD

    在命令行中使用mongo自带的shell命令来执行CRUD操作 首先链接到数据库 增 db.qiao.insert({"qq":1}) db.qiao.save({"qq ...

  8. mongo安装、备份与常见命令整理

    http://zlboy888.blog.163.com/blog/static/315357072012919241104/ 1 下载安装包  官方下载地址:http://www.mongodb.o ...

  9. mongo 学习教程(全)

    看的是爱酷学习网的视频:http://www.icoolxue.com/album/show/98 01 安装 1.先建mongoDB-data文件夹存数据 2.安装DB 3.设置环境变量:把bin目 ...

随机推荐

  1. 转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】

    转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至 ...

  2. 为什么js引入页面后不起作用?

    为什么js引入页面后不起作用? 例如常见的报错:Uncaught ReferenceError: $ is not defined. 可能出现这种情况的原因如下: 原因一: 引入js的位置不对,应在使 ...

  3. flask的orm框架(SQLAlchemy)-创建表

    # 转载请留言联系 ORM 是什么? ORM,Object-Relation Mapping.意思就是对象-关系映射.ORM 主要实现模型对象到关系数据库数据的映射. 优点 : 只需要面向对象编程, ...

  4. Fiddler抓包6-get请求(url详解)【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 上一篇介绍了Composer的功能,可以模拟get和post请求 ...

  5. Guava源码学习(五)EventBus

    基于版本:Guava 22.0 Wiki:EventBus 0. EventBus简介 提供了发布-订阅模型,可以方便的在EventBus上注册订阅者,发布者可以简单的将事件传递给EventBus,E ...

  6. UVA 11149.Power of Matrix-矩阵快速幂倍增

    Power of Matrix UVA - 11149       代码: #include <cstdio> #include <cstring> #include < ...

  7. Python的网络编程[1] -> FTP 协议[1] -> 使用 pyftplib 建立 FTP 服务器

    使用 pyftplib 建立 FTP 服务器 pyftplib 主要用于建立 FTP Server,与 ftplib 建立的 Client 进行通信. 快速导航 1. 模块信息 2. 建立 FTP 服 ...

  8. 整数划分问题(记忆化搜索和DP方法)

    一. 问题 现在有一正整数N,要把它分为若干正整数之和,问有多少种本质不同的分法? (1)其中最大数不超过m, 有多少种分法? (2)分割后的正整数的数目不超过m个, 有多少种分法? (3)分成最大数 ...

  9. HDU 5916: Harmonic Value Description

    题目描述 The harmonic value of the permutation $p_1,p_2,\cdots p_n$ is$$\sum_{i=1}^{n-1} gcd(p_i.p_{i+1} ...

  10. 反汇编引擎diStorm3

    反汇编引擎diStorm3   diStorm3是Kali Linux自带的一款轻量级.容易使用的反汇编引擎.它可以反汇编生成16位.32位和64位指令.它支持的指令集包括FPU.MMX.SSE.SS ...