MongoDB में सरणी से तत्व हटाना: $pull ऑपरेटर
$pull ऑपरेटर किसी सरणी से उन सभी तत्वों को हटा देता है जो निर्दिष्ट शर्त से मेल खाते हैं। यह सरणी में मानों की सूची को प्रबंधित करने के लिए बेहद उपयोगी है।
नमूना डेटा
> db.demo318.insertOne({Subject: ["MySQL", "MongoDB", "Java"]});
{ "acknowledged": true, "insertedId": ObjectId("5e50ea6df8647eb59e562062") }
> db.demo318.insertOne({Subject: ["Spring", "Hibernate"]});
{ "acknowledged": true, "insertedId": ObjectId("5e50ea78f8647eb59e562063") }
"Hibernate" मान हटाने के लिए क्वेरी
हम उस डॉक्यूमेंट को ढूंढते हैं जिसमें "Hibernate" है और फिर $pull का उपयोग करके उस मान को सरणी से हटाते हैं।
> db.demo318.update({Subject: "Hibernate"}, {$pull: {"Subject": "Hibernate"}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
परिणाम
> db.demo318.find();
{ "_id": ObjectId("5e50ea6df8647eb59e562062"), "Subject": [ "MySQL", "MongoDB", "Java" ] }
{ "_id": ObjectId("5e50ea78f8647eb59e562063"), "Subject": [ "Spring" ] }
दूसरे डॉक्यूमेंट से "Hibernate" हटा दिया गया, जिससे केवल "Spring" बचा। पहला डॉक्यूमेंट अपरिवर्तित रहा क्योंकि उसमें "Hibernate" नहीं था। $pull सरणी में सभी मिलान वाले तत्वों को हटा देता है, न कि केवल पहले को।