$unset और $pull से ऐरे का nth एलिमेंट हटाएं
MongoDB में ऐरे के विशिष्ट इंडेक्स (nth position) पर स्थित एलिमेंट को हटाने के लिए $unset के बाद $pull का उपयोग करें।
उदाहरण डेटा
> db.getNThElementDemo.insertOne({"UserName":"John","UserAge":23,"ListOfFriends":["Carol","Sam","Mike","Bob"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c94ee7516f542d757e2b43e") }
> db.getNThElementDemo.insertOne({"UserName":"David","UserAge":21,"ListOfFriends":["Chris","Robert"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c94eeaa16f542d757e2b43f") }
सभी दस्तावेज़:
> db.getNThElementDemo.find().pretty();
तीसरा एलिमेंट (इंडेक्स 2) हटाएं: "Mike"
> db.getNThElementDemo.update({}, {$unset: {"ListOfFriends.2": 1}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.getNThElementDemo.update({}, {$pull: {"ListOfFriends": null}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })परिणाम देखें:
> db.getNThElementDemo.find().pretty();प्रक्रिया:
$unsetइंडेक्स 2 परnullसेट करता है (ऐरे में छेद छोड़ता है)$pullसभीnullमानों को ऐरे से हटा देता हैनोट: यह उदाहरण केवल पहले मिलान वाले दस्तावेज़ को अपडेट करता है (
updateबिनाmultiके)। सभी दस्तावेज़ अपडेट करने के लिएupdateManyयाmulti: trueउपयोग करें।