hb120973135 发表于 2017-12-16 09:44:17

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"}})
页: [1]
查看完整版本: MongoDB update相关修改器命令