Le $pullAll
L'opérateur est vraiment un "cas spécial" qui était principalement destiné aux éléments de tableau "scalaires" simples et non aux sous-documents de la manière dont vous l'utilisez.
Utilisez plutôt $pull
qui inspectera chaque élément et utilisera un $or
condition pour les listes de documents :
db.streams.update(
{ "user": "user_name" },
{ "$pull": { "streams": { "$or": streamsB } }}
)
De cette façon, peu importe l'ordre dans lequel se trouvent les champs ou la recherche d'une "correspondance exacte" comme le $pullAll
actuel l'opération est en cours.