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

MongoDB-এ অ্যারে এলিমেন্টকে ইনডেক্স অনুযায়ী মুছে ফেলা


দুটি ধাপে অ্যারে থেকে নির্দিষ্ট ইনডেক্সের এলিমেন্ট মুছে ফেলা

MongoDB-এ সরাসরি অ্যারে ইনডেক্স দিয়ে এলিমেন্ট মুছে ফেলার অপারেটর নেই। এর জন্য দুই ধাপ অনুসরণ করতে হয়:

  1. $unset দিয়ে ঐ ইনডেক্সে null সেট করুন।
  2. $pull দিয়ে null ভ্যালুগুলো অ্যারে থেকে বাদ দিন।

সিনট্যাক্স

// Step 1: নির্দিষ্ট ইনডেক্সে null সেট
db.yourCollectionName.update({}, { $unset: { "yourArrayFieldName.yourIndexValue": 1 } });

// Step 2: null ভ্যালুগুলো অ্যারে থেকে পুল করুন
db.yourCollectionName.update({}, { $pull: { "yourArrayFieldName": null } });

উদাহরণ

> db.removeArrayElementByItsIndexDemo.insertOne({
  "InstructorName": "David", "InstructorAge": 28,
  "InstructorSubject": ["MongoDB","MySQL","Java","SQL Server","PL/SQL"]
});

Step 1: ইনডেক্স ২ (Java) মুছে ফেলা:

> db.removeArrayElementByItsIndexDemo.update({}, { $unset: { "InstructorSubject.2": 1 } });
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

Step 2: null ভ্যালু সরিয়ে ফেলা:

> db.removeArrayElementByItsIndexDemo.update({}, { $pull: { "InstructorSubject": null } });
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

ফলাফল যাচাই:

> db.removeArrayElementByItsIndexDemo.find().pretty();
{
  "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
  "InstructorName" : "David", "InstructorAge" : 28,
  "InstructorSubject" : [ "MongoDB", "MySQL", "SQL Server", "PL/SQL" ]
}

নোট: MongoDB 3.6+ এ $pull সরাসরি শর্ত দিয়ে এলিমেন্ট মুছে ফেলা যায়, তবে ইনডেক্স বেসড রিমুভের জন্য এই পদ্ধতিটি কার্যকর।


  1. MongoDB-তে অ্যারে পুশ করার পদ্ধতি

  2. MongoDB-এ অ্যারেতে এলিমেন্ট যুক্ত করার পদ্ধতি

  3. MongoDB-এ মাল্টিকি ইন্ডেক্স ও $elemMatch দিয়ে কোয়েরি অপ্টিমাইজেশন

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