老莫的笔记本  
  
查看: 1264|回复: 0

mongodb 数组的 数组修改器

[复制链接]

664

主题

880

帖子

5155

积分

超级版主

Rank: 8Rank: 8

积分
5155
发表于 2018-6-25 00:29:20 | 显示全部楼层 |阅读模式
详情仿照:https://blog.csdn.net/zilu_wang/article/details/51457331  


总结经验:


push修改器:
        push的作用就是,如果指定的键已经存在,它会向已有的数组末尾加入一个元素,要是没有就会创建一个新的数组。下面我们把新朋友加进去。
  1. db.user.update({“_id” : ObjectId(“4ffcb2ed65282ea95f7e3304”)},{$push:{“relationships”:{“fname”:”xiong”,”lname”:”lan”}}})
复制代码
pop:从头部或者尾部删除
  1. db.user.update({“_id” : ObjectId(“4ffcb2ed65282ea95f7e3304”)},{$pop:{“relationships”:1}})
复制代码
如果我们想从数组的开头删除该怎么办呢。很简单,把上面的“1”改成“-1”,它将逆向操作。下面看一下:
  1. db.user.update({“_id” : ObjectId(“4ffcb2ed65282ea95f7e3304”)},{$pop:{“relationships”:-1}})
复制代码
pull :从数组中间删除  【将所有匹配到的数据都删除】
  1. db.user.update({“_id” : ObjectId(“4ffcb2ed65282ea95f7e3304”)},{$pull:{“relationships”:{“fname”:”dongren”,”lname”:”zeng”}}})
复制代码
ne:修改器;  主要拿来判断,若数组里面有这个值,则不插入;没有才插入。
  1. db.user.update({“relationships.fname”:{ne:"xiong"}},{ne:"xiong"}},{set:{“fname”:”xiong”,”lname”:”lan”}})
复制代码
addToSet:  同 ne的作用相同外 还有:配合each 插入多组数据
  1. db.user.update({“_id” : ObjectId(“4ffcb2ed65282ea95f7e3304”)},
  2. {addToSet:{"relationships":{addToSet:{"relationships":{each:[{“fname”:”xiong”,”lname”:”lan”},
  3. {“fname”:”dongren”,”lname”:”zeng”}]}}})
  4. db.user.findOne()
复制代码

上述代码有待考证  最后一个 addToSet 多使用 但是使用情况 请参照 原文。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表