$pullAll
operator er virkelig et "særligt tilfælde", der mest var beregnet til enkelte "skalære" array-elementer og ikke til underdokumenter på den måde, du bruger det på.
Brug i stedet $pull
som vil inspicere hvert element og bruge en $or
betingelse for dokumentlisterne:
db.streams.update(
{ "user": "user_name" },
{ "$pull": { "streams": { "$or": streamsB } }}
)
På den måde er det ligegyldigt, hvilken rækkefølge felterne er i, eller faktisk ser efter et "nøjagtigt match" som den nuværende $pullAll
operationen faktisk gør.