一、概念引入
pop
、pull
和pullAll
是数组操作方法,用于从数组中移除元素。
二、pop
、pull
和pullAll
用法和不同
1.pop
:从数组末尾移除一个元素并返回该元素。如果传入参数,则移除对应索引的元素并返回。
2.pull
:从数组中移除指定值的第一个匹配项,并返回被移除的值。如果没有找到匹配项,则返回undefined
3.pullAll
:从数组中移除所有给定的值,并返回被移除的值组成的新数组。如果没有找到匹配项,则返回空数组
三、实战体会
3.1问题描述
从tangseng中删除电影“hero”(使用三种操作符pop、pull和pullAll,并比较三者的不同。)
提示:先执行如下两条语句。 db.users.insert([{username:"zhubajie"},{username:"tangseng"}]) db.users.update({username:"tangseng"},{$set:{hobby:{cities:["beijing","shanghai","shenzhen"],movies:["sanguo","hero"]}}})
3.2实战
//删除符合条件的内容
db.users.update({username:'tangseng'},{$pull:{'hobby.movies':'hero'}})
//删除符合条件的多个内容
db.users.update({username:'tangseng'},{$pullAll:{'hobby.movies':['hero']}})
//从数组头部删除
db.users.update({username:'tangseng'},{$pop:{'hobby.movies':-1}})
//从数组尾部删除
db.users.update({username:'tangseng'},{$pop:{'hobby.movies':1}})