কম্পিউটার

MongoDB এ সঠিক উপাদান অ্যারেতে ক্ষেত্র আপডেট করবেন?


আপনি নীচের বিবৃতির সাহায্যে 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।


  1. MongoDB-তে আপডেট অপারেশন ব্যবহার করে একটি ক্ষেত্রকে অ্যারেতে রূপান্তর করুন

  2. MongoDB এ একটি অ্যারের একাধিক উপাদান আপডেট করবেন?

  3. MongoDB এ একটি অ্যারের ভিতরে উপাদান আপডেট করবেন?

  4. কিভাবে একটি MongoDB অ্যারে উপাদান অপসারণ?