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

MongoDB-এ $pull এবং পজিশনাল অপারেটর ($) কম্বাইন করে নেস্টেড অ্যারে এলিমেন্ট মুছে ফেলা

MongoDB-এ নেস্টেড অ্যারে (অ্যারে ভিতরে অ্যারে) থেকে নির্দিষ্ট এলিমেন্ট মুছে ফেলতে $pull এবং পজিশনাল $ অপারেটর কম্বাইন করে ব্যবহার করা হয়। $elemMatch দিয়ে পেরেন্ট এলিমেন্ট চিহ্নিত করা হয়।

নমুনা ডেটা তৈরি (StudentDetails -> StudentFavouriteSubject নেস্টেড অ্যারে)

> db.pullWithPositionalOperatorDemo.insertOne({
  _id: 100,
  "StudentDetails": [
    {
      "StudentId": "STU-1",
      "StudentFavouriteSubject": ["MongoDB", "Java"]
    },
    {
      "StudentId": "STU-2",
      "StudentFavouriteSubject": ["PHP", "MySQL"]
    }
  ]
});
{ "acknowledged": true, "insertedId": 100 }

ডকুমেন্ট দেখুন

> db.pullWithPositionalOperatorDemo.find().pretty();
আউটপুট:
{
  "_id": 100,
  "StudentDetails": [
    {"StudentId": "STU-1", "StudentFavouriteSubject": ["MongoDB", "Java"]},
    {"StudentId": "STU-2", "StudentFavouriteSubject": ["PHP", "MySQL"]}
  ]
}

StudentId="STU-2" এবং StudentFavouriteSubject="MySQL" মэтচ করে MySQL মুছে ফেলা

> db.pullWithPositionalOperatorDemo.update({
  "StudentDetails": {
    "$elemMatch": {
      "StudentId": "STU-2",
      "StudentFavouriteSubject": "MySQL"
    }
  }
}, {
  $pull: {
    "StudentDetails.$.StudentFavouriteSubject": "MySQL"
  }
}, {
  multi: true
});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

আপডেট হওয়া ডকুমেন্ট যাচাই করুন

> db.pullWithPositionalOperatorDemo.find().pretty();
আউটপুট (STU-2-র StudentFavouriteSubject থেকে MySQL বাদ পড়েছে):
{
  "_id": 100,
  "StudentDetails": [
    {"StudentId": "STU-1", "StudentFavouriteSubject": ["MongoDB", "Java"]},
    {"StudentId": "STU-2", "StudentFavouriteSubject": ["PHP"]}
  ]
}

ব্যাখ্যা:

  1. $elemMatch: StudentDetails অ্যারেতে StudentId="STU-2" এবং StudentFavouriteSubject-এ "MySQL" থাকা এলিমেন্ট খুঁজে বের করে।
  2. StudentDetails.$.StudentFavouriteSubject: পজিশনাল $ সেই মэтচ করা এলিমেন্টকে রেফার করে।
  3. $pull: সেই সাব-অ্যারেতে থেকে "MySQL" মুছে ফেলে।

  1. MongoDB-এ অ্যারে সাব-ডকুমেন্ট আপডেট: $set ও পজিশনাল $ অপারেটর

  2. MongoDB-এ $or অপারেটর ব্যবহার করে ডকুমেন্ট ফেচ করা

  3. MongoDB-এ শর্তসাপেক্ষ কনক্যাটেনেশন (Concatenate with Condition)

  4. MongoDB-এ $push অপারেটর ব্যবহার করে অ্যারে আপডেট করা