mongodb笔记之数组

1.数组的增
1.1 $push
会向已有的数组中插入一个元素,如果数组不存在 则会自动创建数组
db.test.update({name:lisi},{“$push”:{“arrName”:{name:”zhangsan”,age:12}}}); –向arrName数组中添加一个元素{name:”zhangsan”,age:12}.

1.2 $each
使用$each子操作符,可以通过一次$push向数组插入多个值
db.test.update({name:lisi},{“\$push”:{“arrName”:{“\$each”:[22,33,44,55,66,{name:”zhangsan”:age:22}]}}});

1.3 $addToSet
使用也可以向数组中插入元素,但是它可以保证插入的元素不重复
db.test.update({“_id”:”12”},{$addToSet:{“emails”:”joe@aaa.com”}}); —向emails数组中添加一个新元素 “joe@aaa”.

2.数组的删
2.1 $pop
可以用”$pop”这个修改器 从数组的任何一端删除元素
{“\$pop”:{“key”:1}}从数组末尾删除一个元素
{“\$pop”:{“key”:-1}}从数组头部删除一个元素

2.2. “$pull”
用”$pull”可以根据特定条件来删除数组元素
db.test.insert({“todo”:[1,2,3,1,4,1,5,6]});
db.test.update({},{“\$pull”:{todo:1}}) —将数组todo中的元素1 全部删除

3.数组的改
3.1 数组定位修改器
使用场景:如果数组中有多个元素,而我们只想对其中的一部分进行操作,这时则可以通过位置或者定位操作符(“$”);


db.blog.find() 数据:
{
content:"这是文章内容......",
comments:[
{"comment":"good post1 ",author:"John","votes":0},
{"comment":"good post2 ",author:"Lily","votes":2},
{"comment":"good post3 ",author:"Wang","votes":3},
{"comment":"good post4 ",author:"John","votes":1}
]
}
如果用户John把名字改成John2
db.blog.update({“comments.author”:”John”},{“$set”:{“comments.author”:”John2”}})—-执行失败
使用定位符 $
db.blog.update({“comments.author”:”John”},{“$set”:{“comments.$.author”:”John2”}})
—执行成功,但定位符只更新第一个匹配的元素,所以只有第一条author=Jhon的信息被修改.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值