Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$pullAll (operador de atualização)

$pullAll

O operador remove todas as instâncias dos valores $pullAll especificados de uma array existente. Ao contrário do operator que remove $pull $pullAll elementos especificando uma query, remove elementos que correspondem aos valores listados.

O operador tem o $pullAll formato:

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

Para especificar um <field> em um documento incorporado ou em uma array, use a notação de ponto.

A partir do MongoDB 5.0, os operadores de atualização processam campos de documento com nomes baseados em cadeia de caracteres em ordem lexicográfica. Os campos com nomes numéricos são processados em ordem numérica. Consulte Atualizar Comportamento de Operadores para detalhes.

Se um <value> a ser removido for um documento ou uma array, $pullAll removerá somente os elementos na array que correspondam exatamente ao <value> especificado, incluindo a ordem.

A partir do MongoDB,5.0 mongod não gera mais um erro quando você usa um operador de atualização como $pullAll com uma expressão de operando vazia ( { } ). Uma atualização vazia não resulta em nenhuma alteração e nenhuma entrada no oplog é criada (o que significa que a operação é um no-op).

Crie a coleção survey:

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

A seguinte operação remove todas as instâncias dos valores "0" e "5" da array scores:

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

Após a atualização, o campo scores não tem mais nenhuma instância de "0" ou "5".

{ "_id" : 1, "scores" : [ 2, 1 ] }
Avalie esta página