MongoDB 修改器 简介

下面介绍几个修改器

修改器都是以  $ 开头的

$inc//增长, increment 缩写 ,可以为负数,但必须是数字类型

$set//指定一个键值,如果存在,就修改原来的value不存在就添加,

例:

db.user.update(...,{"$set" : {"hoby" : "basketball"}})

$unset//删除指定键,例:db.user.update(...,{"$unset" : {"hoby" : 1}}),经测试,键后面的参数无论跟什么值,结果都是删除键,具体什么区别未知。

$push//数组修改器,向数组内追加文档,用法同上

$ne// not equals 缩写(个人认为),不等于,

例:

> db.user.update(
... {"comments":{"$ne" : "zhangsan"}},
... {$push:{"comments":"zhangsan"}})

如果 comments 中没有 "zhangsan" 值,就添加

复杂一点的例子:

> db.user.update(
... {"comments":{"$ne" : {"pom":"zhangsan"}}},
... {$push:{"comments":{"pom":"zhangsan"}}})

如果 comments 数组中 没有 "pom" 为 "zhangsan" 的,就将该文档添加。

$addToSet//与上面的功能一样,它本身就有防止重复数据的功能,注意大小写,如果不对,会出现

 Invalid modifier specified $addToset的错误提示

例:

> db.user.update(
... {"name":"zhangshan"},
... {"$addToSet":{"comments":"zhangsan"}})

$each//与 $addToSet 结合起来,可以一次添加多个值

例:

> db.user.update(
... { "_id" : ObjectId("50beee03bda33240a8297381")},
... {"$addToSet":
... {"comments" : { "$each":[
... {"user":"lisi"},{"user":"wangwu"}
... ]}}})

$pop//从数组的头部或者尾部移除元素 1:尾部,-1:头部

例:

> db.user.update(
... {"_id" : ObjectId("50beee03bda33240a8297381")},
... {$pop:{"comments":1}})

$pull// 移除特定元素,注意,会将所有匹配的元素都删除掉

例:

> db.user.update(
... {"_id" : ObjectId("50beee03bda33240a8297381")},
... {$pull:{"comments":{"people":"nihao"}}})

$ //只有一个 "$",数组的定位修改器,也就相当于将 第一个参数查找到的元素的下表 付给了 “$” 符号

例子:

> db.user.update(
... {"comments.pom":"zhangsan"},
... {$set:{"comments.$.pom":"zhangsan23"}})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值