MongoDB में इंडेक्स के आधार पर ऐरे एलिमेंट को हटाने के लिए आप $unset और $pull ऑपरेटर का उपयोग कर सकते हैं। यह प्रक्रिया दो चरणों में पूरी होती है। सिंटैक्स निम्नानुसार है:
db.yourCollectionName.update({}, {$unset: {"yourArrayListName.yourPosition": yourPositionValue}});
db.yourCollectionName.update({}, {$pull: {"yourArrayListName": null}});
उदाहरण से समझें
सबसे पहले एक कलेक्शन बनाते हैं जिसमें डॉक्यूमेंट हो:
> db.removeArrayElements.insertOne({"StudentName": "Larry", "StudentAge": 23, "TechnicalSubject": ["C", "C++", "Java", "MongoDB"]});
{ "acknowledged": true, "insertedId": ObjectId("5c6ea4879c4643706aef56d2") }
सभी डॉक्यूमेंट देखने के लिए find() मेथड का उपयोग करें:
> db.removeArrayElements.find().pretty();
आउटपुट:
{ "_id": ObjectId("5c6ea4879c4643706aef56d2"), "StudentName": "Larry", "StudentAge": 23, "TechnicalSubject": ["C", "C++", "Java", "MongoDB"] }
अब इंडेक्स 3 (चौथा एलिमेंट "MongoDB") को हटाने के लिए क्वेरी चलाएं:
> db.removeArrayElements.update({}, {$unset: {"TechnicalSubject.3": 1}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
> db.removeArrayElements.update({}, {$pull: {"TechnicalSubject": null}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
फिर से डॉक्यूमेंट चेक करें:
> db.removeArrayElements.find().pretty();
आउटपुट:
{ "_id": ObjectId("5c6ea4879c4643706aef56d2"), "StudentName": "Larry", "StudentAge": 23, "TechnicalSubject": ["C", "C++", "Java"] }
आउटपुट से स्पष्ट है कि इंडेक्स 3 पर मौजूद "MongoDB" एलिमेंट सफलतापूर्वक हटा दिया गया है।