zoukankan      html  css  js  c++  java
  • MongoDB update相关修改器命令

    update相关修改器命令
    $set:用来指定一个键值对,如果存在就进行修改,不存在就添加
    db.user.update({name:"hello"},{$set:{field:value}})

    $inc:指定对应的键值进行数字上的加减操作,只针对值为数值的键有效
    db.user.update({name:"hello"},{$inc:{age:2}})

    $unset:删除指定的键
    db.user.update({name:"hello"},{$unset:{field:1}})

    $push:追加或创建新的数组元素
    db.user.update({name:"hello"},{$push:{"hobby":"football"}})
    之前文档中不存在数组字段就创建,存在就添加football元素
    如果hobby存在但不是数组类型,会报错Cannot apply $push/$pushAll modifier to non-array
    push操作不会检查数组中元素是否重复,如果需要将不重复的数据加入数组,需要使用$addToSet

    $addToSet:指定数组列中存在此元素就不操作,不存在就添加
    db.user.update({name:"hello"},{$addToSet:{"hobby":"football"}})

    $pushAll:用法和push类似,可以批量添加数组元素到指定字段
    db.user.update({name:"hello"},{$pushAll:{"hobby":["football","book"]}})

    $pop:从指定的数组字段删除一个值,1删除最后一个值,即最数组最右边的,-1删除第一个元素,最左边的
    db.user.update({name:"hello"},{$pop:{"hobby":1}}),以上例为例则hobby中book被删

    $pull:删除一个指定的数值
    db.user.update({name:"hello"},{$pull:{"hobby":"book"}})
    删除hobby中的book元素

    $pullAll:一次性删除多个指定的值
    db.user.update({name:"hello"},{$pull:{"hobby":["book","footbook"]}})

    $定位器
    如有文档如下:
    {name:"xiaowang",books:[{"type":"js","publish":2017},
    {"type":"mongodb","publish":2017},
    {"type":"mongodb","publish":2016}]}
    把type为mongodb的文档都加上一个作者名,就可以使用如下命令
    db.user.update({"books.type":"mongodb"},{$set:{"books.$.author":"iaknehc"}})

  • 相关阅读:
    sun.misc.BASE64Encoder找不到的解决方法
    eclipse里大小写转化的快捷键是什么
    jface viewer 理解
    如何在遗留代码基础上开发
    谈谈技术文档的编写
    jre build path 中的限制问题导致一些代码无法编译..如果设置
    android update automatically ( android 自动升级)
    各大集群存储产品点评
    关于@Autowired 注释为何不需要get Set
    VRML之desk
  • 原文地址:https://www.cnblogs.com/iaknehc/p/6414609.html
Copyright © 2011-2022 走看看