आप ऐरे तत्व को उसके इंडेक्स द्वारा निम्न दो चरणों का उपयोग करके हटा सकते हैं:
पहला चरण इस प्रकार है:
db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});
उपरोक्त सिंटैक्स 'yourIndexValue' के स्थान पर null मान रखेगा। उसके बाद, आपको ऐरे फ़ील्ड से null मान को खींचकर ऐरे तत्व से हटाना होगा।
दूसरा चरण इस प्रकार है:
db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});
सिंटैक्स लागू करने के लिए, एक दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है:
> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David", "InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803") }
find() विधि की मदद से संग्रह से सभी दस्तावेज़ प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.removeArrayElementByItsIndexDemo.find().pretty();
आउटपुट निम्न है:
{ "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" : "David", "InstructorAge" : 28, "InstructorSubject" : [ "MongoDB", "MySQL", "Java", "SQL Server", "PL/SQL" ] }
यहाँ ऐरे तत्व को उसके इंडेक्स द्वारा हटाने की क्वेरी है।
चरण 1 - क्वेरी इस प्रकार है:
> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
चरण 2 - क्वेरी इस प्रकार है:
> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
आइए जांचते हैं कि ऐरे तत्व "Java" हटा दिया गया है या नहीं। क्वेरी इस प्रकार है:
> db.removeArrayElementByItsIndexDemo.find().pretty();
आउटपुट निम्न है:
{ "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" : "David", "InstructorAge" : 28, "InstructorSubject" : [ "MongoDB", "MySQL", "SQL Server", "PL/SQL" ] }
नमूना आउटपुट को देखें, ऐरे तत्व "Java" पूरी तरह से हटा दिया गया है।