$pullAll
ऑपरेटर वास्तव में एक "विशेष मामला" है जो ज्यादातर एकल "स्केलर" सरणी तत्वों के लिए था, न कि उप-दस्तावेजों के लिए जिस तरह से आप इसका उपयोग कर रहे हैं।
इसके बजाय $pull
इस्तेमाल करें
जो प्रत्येक तत्व का निरीक्षण करेगा और एक $or
दस्तावेज़ सूचियों के लिए शर्त:
db.streams.update(
{ "user": "user_name" },
{ "$pull": { "streams": { "$or": streamsB } }}
)
इस तरह इससे कोई फर्क नहीं पड़ता कि फ़ील्ड किस क्रम में हैं या वास्तव में वर्तमान $pullAll
के रूप में "सटीक मिलान" की तलाश में हैं ऑपरेशन वास्तव में कर रहा है।