$push:向文档数组中添加元素,如果没有该数组,则自动添加数组。
代码如下 | 复制代码 |
db.users.insert({"name":"zhang"}) |
以上代码,先创建name为zhang的用户,再给该用户加入邮箱,放到emails数组中.
$addToSet:功能与$push相同,区别在于,$addToSet把数组看作成一个Set,如果数组中存在相同的元素,不会插入。
代码如下 | 复制代码 |
db.users.update({"name":"zhang"},{"$addToSet":{"emails":"[email protected]"}}) |
可以看到,并没有两个[email protected]的邮箱.
$addToSet还可以与$each组合使用,一次添加多个值。
代码如下 | 复制代码 |
db.users.update({"name":"zhang"},{"$addToSet":{"emails":{"$each":["[email protected]","[email protected]","[email protected]"]}}}) |
$pop,与$push相对应,删除数组里的元素
代码如下 | 复制代码 |
db.users.update({"name":"zhang"},{"$pop":{"emails":{key:1}}}); |
key=1,从尾删除,key=-1,从头删除
$pull 删除指定元素,结合上面的例子,就是删除指定的邮箱
代码如下 | 复制代码 |
db.users.update({"name":"zhang"},{"$pull":{"emails":"[email protected]"}}); |
修改指定位置的元素:
数组每个元素都有索引,从0开始。经过上面的一系列操作,zhang的文档应该是这样的:
代码如下 | 复制代码 |
{ "_id" : ObjectId("51a16b02d2ded250f4aab338"), "emails" : [ "[email protected]", "[email protected]" ], "name" : "zhang" } |
假如要把第一个邮箱修改成[email protected]:
代码如下 | 复制代码 |
db.users.update({"name":"zhang"},{"$set":{"emails.0":"[email protected]"}}); |
假如要把[email protected]替换成[email protected],在并不知道[email protected]索引时:
代码如下 | 复制代码 |
db.users.update({"name":"zhang","emails":"[email protected]"},{"$set":{"emails.$":"[email protected]"}}); |
丛林探险3 安卓版v454.0
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级