$pullAll
Operátor je skutečně "speciální případ", který byl většinou určen pro jednotlivé "skalární" prvky pole a ne pro dílčí dokumenty způsobem, jakým jej používáte.
Místo toho použijte $pull
který zkontroluje každý prvek a použije $or
podmínka pro seznamy dokumentů:
db.streams.update(
{ "user": "user_name" },
{ "$pull": { "streams": { "$or": streamsB } }}
)
Tímto způsobem nezáleží na tom, v jakém pořadí jsou pole, nebo skutečně hledat "přesnou shodu" jako aktuální $pullAll
operace skutečně probíhá.