zoukankan      html  css  js  c++  java
  • mongo: 改

    语法: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

  • 相关阅读:
    二叉查找树
    huffman coding
    普通树与二叉树
    递归转循环的通法
    尾递归和JAVA
    编译器和解释器
    开天辟地-用visualstudio2010编写helloworld
    Android app targetSdk升级到27碰到的一个bug补充说明
    Android Studio修改Apk打包生成名称
    Glide3升级到Glide4碰到的问题汇总以及部分代码修改
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/6699332.html
Copyright © 2011-2022 走看看