• 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"}})

  • 相关阅读:
    安装Mysql或者msi文件时遇到2502/2503错误
    学习Redis之set集合类型详解
    学习Redis之List列表类型详解
    学习Redis之String字符串类型详解
    学习Redis之redis的基础知识
    学习Redis之Benchmark性能测试
    学习Redis之什么是Redis
    学习Redis之为什么要使用Nosql
    Java基础之使用多线程处理多客户端请求
    代码层实现质量属性战术
  • 原文地址:https://www.cnblogs.com/iaknehc/p/6414609.html
Copyright © 2020-2023  润新知