MongoDB में $pullAll ऑपरेटर का उपयोग करके ऐरे से मान निकालना
$pullAll ऑपरेटर एक ऐरे से निर्दिष्ट सभी मानों के सभी उदाहरणों को हटा देता है। यह $pull के समान है लेकिन एकाधिक मानों के लिए अधिक सुविधाजनक है।
सैंपल डेटा बनाना
> db.removeElementsDemo.insertOne({"ListOfNames":["Mike","Sam","David","Carol"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e071e5a25ddae1f53b62203") }
दस्तावेज़ देखना (अपडेट से पहले)
> db.removeElementsDemo.find().pretty();
आउटपुट:
$pullAll के साथ "Carol" हटाना
> db.removeElementsDemo.update( { }, { $pullAll: { "ListOfNames": ["Carol"] } } ); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })अपडेटेड दस्तावेज़ देखना
> db.removeElementsDemo.find().pretty();आउटपुट:
$pullAll vs $pull
| विशेषता | $pullAll | $pull |
|---|---|---|
| सिंटैक्स | { $pullAll: { field: [value1, value2] } } | { $pull: { field: value } } या { $pull: { field: { condition } } } |
| एकाधिक मान | हां, ऐरे के रूप में | शर्त के साथ संभव |
| शर्तें | नहीं (सटीक मिलान) | हां (क्वेरी शर्तें) |
| उदाहरण | मानों की सूची हटाएं | शर्त पूरी करने वाले सभी हटाएं |
एकाधिक मान हटाना
> db.removeElementsDemo.update(
{ },
{ $pullAll: { "ListOfNames": ["Carol", "Sam"] } }
);
शर्त के साथ हटाने के लिए $pull
> db.collection.update(
{ },
{ $pull: { scores: { $lt: 50 } } } // 50 से कम सभी स्कोर हटाएं
);
नोट
- उदाहरण में deprecated
update()उपयोग किया गया है, आधुनिक MongoDB मेंupdateOne()याupdateMany()उपयोग करें - खाली फ़िल्टर
{ }कलेक्शन के पहले दस्तावेज़ को अपडेट करता है - सभी दस्तावेज़ों को अपडेट करने के लिए
updateMany({}, ...)उपयोग करें