आप निम्न दो चरणों का उपयोग करके किसी सरणी तत्व को उसकी अनुक्रमणिका द्वारा हटा सकते हैं -
पहला चरण इस प्रकार है -
db.yourCollectionName.update({}, {$unset :{"yourArrayFieldName.yourIndexValue" :1 }});
उपरोक्त सिंटैक्स 'yourIndexValue' के स्थान पर एक शून्य मान डाल देगा। उसके बाद, आपको सरणी तत्व से निकालने के लिए दायर सरणी से शून्य मान खींचने की आवश्यकता है।
दूसरा चरण इस प्रकार है -
db.yourCollectionName.update({}, {$pull :{"yourArrayFieldName" :null}});
सिंटैक्स को लागू करने के लिए, आइए हम दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है -
> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David", "InstructorAge":28,"InstructorSubject":["MongoDB",,"MySQL",,"Java",,"SQL Server",,"PL/ SQL"]});{ "स्वीकृत" :सत्य, "insertId" :ObjectId("5c8abbfc6cea1f28b7aa0803")}
संग्रह से सभी दस्तावेज़ों को ढूँढें () विधि की सहायता से प्रदर्शित करें। क्वेरी इस प्रकार है -
> db.removeArrayElementByItsIndexDemo.find().pretty();
निम्न आउटपुट है -
{ "_id" :ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" :"David", "InstructorAge" :28, "InstructorSubject" :["MongoDB", "MySQL", "Java", "SQL Server" , "पीएल/एसक्यूएल"]}
किसी सरणी तत्व को उसके अनुक्रमणिका द्वारा निकालने की क्वेरी यहां दी गई है।
चरण 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})पूर्व>आइए देखें कि सरणी तत्व "जावा" को हटा दिया गया है या नहीं। क्वेरी इस प्रकार है -
> db.removeArrayElementByItsIndexDemo.find().pretty();निम्न आउटपुट है -
{ "_id" :ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" :"David", "InstructorAge" :28, "InstructorSubject" :["MongoDB", "MySQL", "SQL Server", "PL/ एसक्यूएल"]}नमूना आउटपुट को देखें, सरणी तत्व "जावा" को पूरी तरह से हटा दिया गया है।