MongoDB में पोजिशनल ऑपरेटर से विशिष्ट ऐरे इंडेक्स अपडेट करना
MongoDB में मल्टीडाइमेंशनल ऐरे के विशिष्ट इंडेक्स पर ऑब्जेक्ट अपडेट करने के लिए डॉट नोटेशन के साथ इंडेक्स नंबर का उपयोग करें।
उदाहरण: नेस्टेड ऐरे वाला डॉक्यूमेंट बनाना
> db.updateObjectDemo.insertOne(
... {
... id : 101,
... "StudentDetails": [
... [
... { "StudentName": "John" },
... { "StudentName": "Chris" }
... ],
... [
... { "StudentName": "Carol" },
... { "StudentName": "David" }
... ]
... ]
... }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5ccdcd9b685b30d09a7111e0") }
डॉक्यूमेंट देखना
> db.updateObjectDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5ccdcd9b685b30d09a7111e0"), "id" : 101, "StudentDetails" : [ [ { "StudentName" : "John" }, { "StudentName" : "Chris" } ], [ { "StudentName" : "Carol" }, { "StudentName" : "David" } ] ] }
इंडेक्स [1,1] पर "David" को "Mike" में अपडेट करना
> db.updateObjectDemo.update({"id":101}, {$set: {"StudentDetails.1.1.StudentName": "Mike"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
अपडेटेड डॉक्यूमेंट देखना
> db.updateObjectDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5ccdcd9b685b30d09a7111e0"), "id" : 101, "StudentDetails" : [ [ { "StudentName" : "John" }, { "StudentName" : "Chris" } ], [ { "StudentName" : "Carol" }, { "StudentName" : "Mike" } ] ] }
इंडेक्सिंग समझ:
StudentDetails.1- दूसरा सब-ऐरे (इंडेक्स 1):[{ "StudentName": "Carol" }, { "StudentName": "David" }]StudentDetails.1.1- दूसरे सब-ऐरे का दूसरा ऑब्जेक्ट:{ "StudentName": "David" }StudentDetails.1.1.StudentName- उस ऑब्जेक्ट का StudentName फील्ड
नोट: यह तरीका तभी काम करता है जब आप ऐरे स्ट्रक्चर और इंडेक्स जानते हों। डायनामिक कंडीशन के लिए पोजिशनल ऑपरेटर $ या $[identifier] (फिल्टर्ड पोजिशनल) का उपयोग करें।