zoukankan      html  css  js  c++  java
  • Mongodb(四):Mongodb的增删改查(2)修改器

    前面说的更新是整体更新,那怎样做到局部更新呢?Mongodb中使用修改器来完成局部更新操作:

    (1) $set: 这个在前面接触过,它用来指定一个键值对,如果存在键就进行修改,不存在则进行添加.如下:

        

        如上:name字段存在,将其进行了更改,age字段不存在,将其进行了添加

    (2) $inc:只能对数字类型进行操作,可以为指定的键对应的数字类型的数值进行加减操作

        

        如上:为年龄字段增加了2,如果是负数,就是相减。并且,还有一点要注意:如果$inc操作的字段不存在,那么会添加这个字段,

        并且值就是指定的值(只能是数子类型)。

    (3) $unset:用法很简单,就是删除指定的键,一看就明白,如下:

        

        说明: db.customer.update({"_id":"001"}, {"$unset":{"num":1}}),num是要删除的字段,1代表删除

    (4) $push:这个修改器是用来操作数组的。演示如下:

        a.如果键指定的数组存在,则向该数组中追加数据,如下:

        

        b.如果指定的键不是数组但却存在的话,就会报错,如下:

        

        c.如果指定的键不存在的话,则创建数组类型的键值对,如下:

        

    (5) $pushAll:用法和$push相似,可以批量添加数组数据,如下:

        

    (6) $addToSet:也是用来操作数组的,目标数组存在该值就不添加,不存在就添加,有点像Java中的set集合.如下:

        

        注意:如果指定的键不存在,则会创建数组类型的键值对.

    (7) $pop:从指定数组删除一个值: 1代表删除最后一个数值,  -1代表删除第一个数值,如下:

        

    (8) $pull:删除数组中一个被指定的数值,要注意,是操作数组啊...如下:

        

    (9) $pullAll:一次性删除数组中多个被指定的数值,具体用法参考$pushAll

    (10) $addToSet$each结合完成批量数组更新

         例如:db.customer.update({"_id":"001"}, {"$addToSet":{"hobby":{"$each":["football", "basketball"]}}})

         

         $each会循环[ ]中的值,$addToSet进行判断,如果数组中的值存在于原来的数据中,则不添加。否则添加。

    (11) $:数组定位器。这个留到查询的时候再说吧。

  • 相关阅读:
    span 设置inline-block 写文字的span错位
    vue自定义指令clickoutside实现点击其他元素才会触发
    css 字体上下居中显示 解决安卓手机line-height的偏差
    vue-resource
    vue.js 接收url参数
    vue2.0 组件之间的数据传递
    url带#号,微信授权,微信分享那些坑
    url带#号,微信支付那些坑
    javascript中的对象
    css写出0.5px边框(一)
  • 原文地址:https://www.cnblogs.com/wuxilc/p/4046142.html
Copyright © 2011-2022 走看看