आप नीचे दिए गए कथन की सहायता से MongoDB में सटीक तत्व सरणी को अपडेट कर सकते हैं। वाक्य रचना इस प्रकार है:
{"yourArrayDocumentName.$.yourNestedArrayDocument.yourPosition":"yourValue"}});
उपरोक्त वाक्य रचना को समझने के लिए, आइए कुछ दस्तावेज़ों के साथ एक संग्रह बनाएँ। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है:
> db.updateExactField.insertOne({"ActorId":1,,"ActorDetails":[{"ActorName":"Johnny Depp",,"MovieList":["The Tourist",,"Public Enemy"]},. .. {"एक्टरनाम":"क्रिस इवांस", "मूवीलिस्ट":["कैप्टन अमेरिका", "एवेंजर्स"]}]}); { "स्वीकार किया गया":सच, "सम्मिलित आईडी":ऑब्जेक्ट आईडी ("5c6d7f63f2db199c1278e7f1")}पूर्व>अब आप किसी संग्रह से दस्तावेज़ों को ढूँढ़ने () विधि की सहायता से प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है:
> db.updateExactField.find().pretty();निम्न आउटपुट है:
{ "_id" :ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" :1, "ActorDetails" :[ { "ActorName" :"Johnny Depp", "MovieList" :[ "The Tourist", "Public Enemy" ] }, { "अभिनेतानाम" :"क्रिस इवांस", "मूवीलिस्ट" :[ "कैप्टन अमेरिका", "एवेंजर्स" ] } ]}केस 1 :यहां, सटीक सरणी तत्वों के साथ अद्यतन करें अर्थात स्थिति 3, जो अनुक्रमणिका 2 है क्योंकि सरणी 0 से शुरू होती है। क्वेरी इस प्रकार है:
> db.updateExactField.update(... {"ActorDetails.ActorName":"Chris Evans"},... {$set:... {"ActorDetails.$.MovieList.2":"Avengers:Infinity War"}});WriteResult({"nMatched" :1, "nUpserted" :0, "nModified" :1})आइए हम संग्रह से दस्तावेज़ को खोजने () की मदद से प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.updateExactField.find().pretty();निम्न आउटपुट है:
{ "_id" :ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" :1, "ActorDetails" :[ { "ActorName" :"Johnny Depp", "MovieList" :[ "The Tourist", "Public Enemy" ] }, { "अभिनेता का नाम":"क्रिस इवांस", "मूवीलिस्ट":[ "कैप्टन अमेरिका", "एवेंजर्स", "एवेंजर्स:इन्फिनिटी वॉर" ] } ]}ऊपर दिए गए आउटपुट को देखें, मान “एवेंजर्स:इनफिनिट वॉर” तीसरे स्थान पर है यानी इंडेक्स 2।
केस 2 :आइए अब इंडेक्स 1 यानी पोजीशन 2 से अपडेट करते हैं। क्वेरी इस प्रकार है:
> db.updateExactField.update({"ActorDetails.ActorName":"Chris Evans"}, {$set:{"ActorDetails.$.MovieList.1":"Gifted"}});WriteResult({ "nMatched" " :1, "nUpserted" :0, "nModified" :1 })आइए हम किसी संग्रह से दस्तावेज़ को ढूँढें () विधि की सहायता से जाँचें। क्वेरी इस प्रकार है:
> db.updateExactField.find().pretty();निम्न आउटपुट है:
{ "_id" :ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" :1, "ActorDetails" :[ { "ActorName" :"Johnny Depp", "MovieList" :[ "The Tourist", "Public Enemy" ] }, { "अभिनेता का नाम":"क्रिस इवांस", "मूवीलिस्ट":[ "कैप्टन अमेरिका", "गिफ्टेड", "एवेंजर्स:इन्फिनिटी वॉर" ] } ]}उपरोक्त नमूना आउटपुट को देखें, "गिफ्टेड" मान स्थिति 2 यानी इंडेक्स 1 पर है।