আপনি নীচের বিবৃতির সাহায্যে MongoDB-তে সঠিক উপাদান অ্যারে আপডেট করতে পারেন। সিনট্যাক্স নিম্নরূপ:
{"yourArrayDocumentName.$.yourNestedArrayDocument.yourPosition":"yourValue"}});
উপরের সিনট্যাক্স বোঝার জন্য, আসুন কিছু নথি সহ একটি সংগ্রহ তৈরি করি। নথির সাথে একটি সংগ্রহ তৈরি করার প্রশ্নটি নিম্নরূপ:
> db.updateExactField.insertOne({"ActorId":1,"ActorDetails":[{"ActorName":"Johnny Depp","MovieList":["The Tourist","Public Enemy"]}, .. {"ActorName":"Chris Evans","MovieList":["Captain America","Avengers"]}]});{ "স্বীকৃত" :true, "insertedId" :ObjectId("5c6d7f63f2db199c1278e7f1")}প্রে>এখন আপনি find() পদ্ধতির সাহায্যে একটি সংগ্রহ থেকে নথি প্রদর্শন করতে পারেন। প্রশ্নটি নিম্নরূপ:
> db.updateExactField.find().pretty();নিম্নলিখিত আউটপুট:
{ "_id" :ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" :1, "Actor Details" :[ { "ActorName" :"Johnny Depp", "MovieList" :[ "The Tourist", "Public Enemy" ] }, { "অভিনেতা নাম" :"ক্রিস ইভান্স", "মুভিলিস্ট" :[ "ক্যাপ্টেন আমেরিকা", "অ্যাভেঞ্জার্স" ] } ]}কেস 1 :এখানে, সঠিক অ্যারের উপাদানগুলির সাথে আপডেট করুন যেমন অবস্থান 3য়, যা সূচক 2 কারণ অ্যারে 0 থেকে শুরু হয়৷ প্রশ্নটি নিম্নরূপ:
> db.updateExactField.update(... {"ActorDetails.ActorName":"Chris Evans"},... {$set:... {"ActorDetails.$.MovieList.2":"অ্যাভেঞ্জারস:ইনফিনিটি ওয়ার"}});WriteResult({ "nMatched" :1, "nUpserted" :0, "nModified" :1 })আমরা find() এর সাহায্যে সংগ্রহ থেকে নথিটি প্রদর্শন করি। প্রশ্নটি নিম্নরূপ:
> db.updateExactField.find().pretty();নিম্নলিখিত আউটপুট:
{ "_id" :ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" :1, "Actor Details" :[ { "ActorName" :"Johnny Depp", "MovieList" :[ "The Tourist", "Public Enemy" ] }, { "অভিনেতা নাম" :"ক্রিস ইভান্স", "মুভিলিস্ট" :[ "ক্যাপ্টেন আমেরিকা", "অ্যাভেঞ্জার্স", "অ্যাভেঞ্জার্স:ইনফিনিটি ওয়ার" ] } ]}উপরের আউটপুটটি দেখুন, মান "অ্যাভেঞ্জারস:ইনফিনিট ওয়ার" 3য় অবস্থানে আছে অর্থাৎ সূচক 2।
কেস 2 :আসুন এখন সূচক 1 অর্থাৎ পজিশন ২য় দিয়ে আপডেট করি। প্রশ্নটি নিম্নরূপ:
> db.updateExactField.update( {"ActorDetails.ActorName":"Chris Evans"}, {$set:{"ActorDetails.$.MovieList.1":"Gifted"}});WriteResult({ "nMatched " :1, "nUpserted" :0, "nModified" :1 })আসুন find() পদ্ধতির সাহায্যে একটি সংগ্রহ থেকে নথিটি পরীক্ষা করি। প্রশ্নটি নিম্নরূপ:
> db.updateExactField.find().pretty();নিম্নলিখিত আউটপুট:
{ "_id" :ObjectId("5c6d7f63f2db199c1278e7f1"), "ActorId" :1, "Actor Details" :[ { "ActorName" :"Johnny Depp", "MovieList" :[ "The Tourist", "Public Enemy" ] }, { "অভিনেতার নাম" :"ক্রিস ইভান্স", "মুভিলিস্ট" :[ "ক্যাপ্টেন আমেরিকা", "গিফটেড", "অ্যাভেঞ্জার্স:ইনফিনিটি ওয়ার" ] } ]}উপরের নমুনা আউটপুটটি দেখুন, "গিফটেড" মানটি 2 অবস্থানে রয়েছে অর্থাৎ সূচক 1।