文档菜单
文档首页
/
MongoDB 手册
/ / / /

$pullAll

在本页

  • 定义
  • 行为
  • 示例
$pullAll

$pullAll运算符从现有数组中删除指定的所有值。与通过指定查询来删除元素的$pull运算符不同,$pullAll删除与列出的值匹配的元素。

$pullAll运算符的形式是

{ $pullAll: { <field1>: [ <value1>, <value2> ... ], ... } }

要指定嵌入文档或数组中的<field>,请使用点表示法。

从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 ] }

提示

另请参阅

返回

$push