$pullAll
定义
行为
从MongoDB 5.0开始,更新操作符按照字典顺序处理基于字符串命名的文档字段。具有数字名称的字段按数字顺序处理。有关详细信息,请参阅更新操作符行为。
如果要删除的<value>
是一个文档或数组,则$pullAll
仅删除与指定<value>
完全匹配的数组中的元素,包括顺序。
从MongoDB 5.0开始,当使用空操作数表达式({}
)与更新操作符(如$pullAll
)一起使用时,mongod
不再引发错误。空更新不会产生任何变化,也不会创建操作日志条目(意味着操作是无效操作)。
示例
创建survey
集合
db.survey.insertOne( { _id: 1, scores: [ 0, 2, 5, 5, 1, 0 ] } )
以下操作从scores
数组中删除所有值为"0"和"5"的实例
db.survey.updateOne( { _id: 1 }, { $pullAll: { scores: [ 0, 5 ] } } )
更新后,scores
字段不再包含"0"或"5"的任何实例。
{ "_id" : 1, "scores" : [ 2, 1 ] }