O
$pullAll
O operador é realmente um "caso especial" destinado principalmente a elementos de matriz "escalares" únicos e não a subdocumentos da maneira que você o está usando. Em vez disso, use
$pull
que inspecionará cada elemento e usará um $or
condição para as listas de documentos:db.streams.update(
{ "user": "user_name" },
{ "$pull": { "streams": { "$or": streamsB } }}
)
Dessa forma, não importa em qual ordem os campos estão ou, de fato, procure uma "correspondência exata" como o
$pullAll
atual operação está realmente fazendo.