$pull_all
区别在于:
执行一次 $pull_all ,如
- { $pull_all: { <字段名1>: [ <值1>, <值2>, ..., <值N> ] } }
- { $pull: { <字段名1>: <值2> } }
- ...
- { $pull: { <字段名1>: <值N> } }
- 操作 arr 字段,删除数组中为 2 或者 为 3 的元素;操作 name 字段,删除数组中为 "Tom" 的元素。如有记录:
此操作后,记录更新为:
- { arr: [ 1, 4, 5 ], age: 10, name: [ "Mike" ] }
- 操作 arr 字段,删除数组中为 4 或者 为 5 的元素。如有记录:
- > db.foo.bar.update( { $pull_all: { arr: [ 4, 5 ] } } )
- { arr: [ 1, 3 ], age: 10, name: [ "Tom", "Mike" ] }