आप MongoDB में ऐरे से ऑब्जेक्ट हटाने के लिए $pull ऑपरेटर का उपयोग कर सकते हैं। कॉन्सेप्ट समझने के लिए, एक दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है:
> db.removeObjectFromArrayDemo.insertOne( ... { ... ... "StudentName": "John", ... "StudentAcademicProjectDetails": ... [{ ... ... "StudentProjectId": 101, ... ... "StudentProjectName": "Pig Dice Game" ... ... }, ... ... { ... ... "StudentProjectId": 110, ... ... "StudentProjectName": "Library Management System" ... ... }, ... ... ... { ... ... "StudentProjectId": 120, ... ... "StudentProjectName": "Phonebook Management System" ... ... } ... ... ] ... ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c8ad13d6cea1f28b7aa0817") }
find() विधि की मदद से संग्रह से सभी दस्तावेज़ प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.removeObjectFromArrayDemo.find().pretty();
आउटपुट निम्न है:
{ "_id" : ObjectId("5c8ad13d6cea1f28b7aa0817"), "StudentName" : "John", "StudentAcademicProjectDetails" : [ { "StudentProjectId" : 101, "StudentProjectName" : "Pig Dice Game" }, { "StudentProjectId" : 110, "StudentProjectName" : "Library Management System" }, { "StudentProjectId" : 120, "StudentProjectName" : "Phonebook Management System" } ] }
MongoDB में ऐरे से ऑब्जेक्ट हटाने की क्वेरी यहाँ है:
> db.removeObjectFromArrayDemo.update( ... { '_id': ObjectId("5c8ad13d6cea1f28b7aa0817")}, ... { $pull: { "StudentAcademicProjectDetails" : { StudentProjectId: 101 } } }, ... false, ... true ... ); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
आइए संग्रह से दस्तावेज़ जांचते हैं कि ऐरे से ऑब्जेक्ट हटा दिया गया है या नहीं। क्वेरी इस प्रकार है:
> db.removeObjectFromArrayDemo.find().pretty();
आउटपुट निम्न है:
{ "_id" : ObjectId("5c8ad13d6cea1f28b7aa0817"), "StudentName" : "John", "StudentAcademicProjectDetails" : [ { "StudentProjectId" : 110, "StudentProjectName" : "Library Management System" }, { "StudentProjectId" : 120, "StudentProjectName" : "Phonebook Management System" } ] }
उपरोक्त नमूना आउटपुट को देखें, "StudentProjectId" 101 वाला फ़ील्ड हटा दिया गया है।