MongoDB में $pull से ऐरे एलिमेंट रिमूव करके डॉक्यूमेंट अपडेट करना
MongoDB में एम्बेडेड ऐरे से विशिष्ट ऑब्जेक्ट को हटाकर डॉक्यूमेंट अपडेट करने के लिए $pull ऑपरेटर का उपयोग करें।
उदाहरण: नेस्टेड ऐरे वाले डॉक्यूमेंट्स बनाना
> db.removeDemo.insertOne(
... {
... "UserName" : "Larry",
... "UserDetails" : [
... { "_id" : 101, "UserEmailId" : "976Larry@gmail.com" }
... ]
... }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc7f9f88f9e6ff3eb0ce446") }
> db.removeDemo.insertOne(
... {
... "UserName" : "Mike",
... "UserDetails" : [
... { "_id" : 102, "UserEmailId" : "Mike121@gmail.com" }
... ]
... }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc7f9f98f9e6ff3eb0ce447") }
सभी डॉक्यूमेंट्स देखना
> db.removeDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cc7f9f88f9e6ff3eb0ce446"), "UserName" : "Larry", "UserDetails" : [ { "_id" : 101, "UserEmailId" : "976Larry@gmail.com" } ] }
{ "_id" : ObjectId("5cc7f9f98f9e6ff3eb0ce447"), "UserName" : "Mike", "UserDetails" : [ { "_id" : 102, "UserEmailId" : "Mike121@gmail.com" } ] }
Mike के UserDetails से _id: 102 वाला ऑब्जेक्ट रिमूव करना
> db.removeDemo.update(
... {"_id": ObjectId("5cc7f9f98f9e6ff3eb0ce447")},
... { "$pull": { "UserDetails": {"_id": 102}}}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
अपडेटेड डॉक्यूमेंट्स देखना
> db.removeDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cc7f9f88f9e6ff3eb0ce446"), "UserName" : "Larry", "UserDetails" : [ { "_id" : 101, "UserEmailId" : "976Larry@gmail.com" } ] }
{ "_id" : ObjectId("5cc7f9f98f9e6ff3eb0ce447"), "UserName" : "Mike", "UserDetails" : [ ] }
मुख्य बिंदु:
$pullऐरे से मैचिंग एलिमेंट्स को हटाता है- ऑब्जेक्ट्स के ऐरे में, पूरे ऑब्जेक्ट या फील्ड्स से मैच कर सकते हैं
- एक ही ऑपरेशन में रिमूव और अपडेट दोनों होता है
$pullAllका उपयोग करके कई वैल्यूज एक साथ हटा सकते हैं (सिंपल वैल्यूज के लिए)