কম্পিউটার টিউটোরিয়াল

MongoDB-এ $push ও পজিশনাল $ দিয়ে শর্তসাপেক্ষ অ্যারে আপডেট

MongoDB-এ update() ও $push ব্যবহার করে শর্তসাপেক্ষ অ্যারে উপাদান আপডেট

অ্যারে অফ অবজেক্টে নির্দিষ্ট শর্তে মিলা অবজেক্টের ভেতরের অ্যারেতে নতুন মান পুশ করতে কোয়ারিতে পজিশনাল $ অপারেটর ব্যবহার করা হয়।

উদাহরণ: ডেটা ইনসার্ট

> db.demo9.insertOne({"StudentDetails":[{"StudentName":"Chris","ListOfSubject":["MySQL","Java"]}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e0f6438d7df943a7cec4f94") }

প্রদর্শন

> db.demo9.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5e0f6438d7df943a7cec4f94"), "StudentDetails" : [ { "StudentName" : "Chris", "ListOfSubject" : [ "MySQL", "Java" ] } ] }

শর্তসাপেক্ষ পুশ (StudentName="Chris" হলে ListOfSubject-এ "MongoDB" যোগ)

> db.demo9.update( { "StudentDetails.StudentName":"Chris"}, {$push:{"StudentDetails.$.ListOfSubject":"MongoDB"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

আপডেট পর পরিদর্শন

> db.demo9.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5e0f6438d7df943a7cec4f94"), "StudentDetails" : [ { "StudentName" : "Chris", "ListOfSubject" : [ "MySQL", "Java", "MongoDB" ] } ] }

ব্যাখ্যা

  • {"StudentDetails.StudentName":"Chris"} — কোয়ারি: StudentDetails অ্যারেতে StudentName="Chris" 가진 উপাদান খুঁজে।
  • {$push:{"StudentDetails.$.ListOfSubject":"MongoDB"}} — $ = মিলা উপাদানের পজিশন (ইন্ডেক্স ০)। সেটার ListOfSubject অ্যারেতে "MongoDB" পুশ।
  • সতর্কতা: একাধিক উপাদান মিলে (ডুপ্লিকেট StudentName) শুধু প্রথমটি আপডেট হয়। সব আপডেট করতে arrayFilters (MongoDB 3.6+) ব্যবহার করুন।

আধুনিক সিনট্যাক্স: updateOne({...}, {$push: {...}}) বা updateMany({...}, {$push: {...}}, {arrayFilters: [...]})।

  1. MongoDB-এ অ্যারেতে সব এলিমেন্ট আপডেট করা ($[] অল পজিশনাল অপারেটর)

  2. MongoDB-তে অ্যারے के ভেতরের এলিমেন্ট আপডেট

  3. MongoDB-এ updateOne এবং $push ব্যবহার করে নেস্টেড অ্যারে আপডেট করা

  4. MongoDB-এ অ্যারে থেকে এলিমেন্ট মুছে ফেলা ($pull অপারেটর)