Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Arreglos

$pullAll

$pullAll

El operador $pullAll elimina todas las instancias de los valores especificados de un arreglo existente. A diferencia de el El $pull operador que remueve elementos especificando una query, $pullAll remueve los elementos que coinciden con los valores listados.

El operador $pullAll tiene la forma:

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

Para especificar un <field> en un documento incrustado o en un arreglo, utiliza notación de puntos.

A partir de MongoDB 5.0, los operadores de actualización procesan los campos de documentos con nombres basados en cadenas en orden lexicográfico. Los campos con nombres numéricos se procesan en orden numérico. Consulta Comportamiento del operador de actualización para obtener más información.

Si un <value> que se debe remover es un documento o un arreglo, $pullAll remueve solo los elementos del arreglo que coincidan exactamente con el <value> especificado, incluido el orden.

A partir de MongoDB 5.0, mongod ya no genera un error cuando utiliza un operador de actualización como $pullAll con una expresión de operando vacía ( { } ). Una actualización vacía no produce cambios y no genera ninguna entrada en el oplog (lo que significa que la operación es una “no-op").

Crear la colección survey:

db.survey.insertOne( { _id: 1, scores: [ 0, 2, 5, 5, 1, 0 ] } )

La siguiente operación elimina todas las instancias de los valores "0" y "5" del arreglo scores:

db.survey.updateOne( { _id: 1 }, { $pullAll: { scores: [ 0, 5 ] } } )

Después de la actualización, el campo scores ya no tiene ninguna instancia de "0" o "5".

{ "_id" : 1, "scores" : [ 2, 1 ] }

Tip

Volver

$push

En esta página