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

MongoDB অ্যাগ্রিগেশন-এ সাবসেট শর্ত প্রয়োগ করা

MongoDB অ্যাগ্রিগেশন-এ একটি অ্যারে অন্য অ্যারের সাবসেট কিনা চেক করতে $setIsSubset অপারেটর ব্যবহার করা হয়। এটি বুলিয়ান ভ্যালু রিটার্ন করে।

সিনট্যাক্স

{ $setIsSubset: [ ,  ] }

array1 এর সব এলিমেন্ট array2-তে থাকলে true, অন্যথায় false রিটার্ন করে।

নমুনা কালেকশন তৈরি

> db.subsetDemo.insertOne({ "StudentName": "Chris", "StudentFavouriteSubject": ["Java", "Python"] });
{ "acknowledged": true, "insertedId": ObjectId("5e063e49150ee0e76c06a052") }

> db.subsetDemo.insertOne({ "StudentName": "Chris", "StudentFavouriteSubject": ["Java", "Python", "MySQL"] });
{ "acknowledged": true, "insertedId": ObjectId("5e063e4f150ee0e76c06a053") }

ডকুমেন্টগুলো দেখানো

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

আউটপুট:

{ "_id": ObjectId("5e063e49150ee0e76c06a052"), "StudentName": "Chris", "StudentFavouriteSubject": [ "Java", "Python" ] }
{ "_id": ObjectId("5e063e4f150ee0e76c06a053"), "StudentName": "Chris", "StudentFavouriteSubject": [ "Java", "Python", "MySQL" ] }

সাবসেট শর্ত প্রয়োগ (MySQL আছে কিনা)

> db.subsetDemo.aggregate([
  { 
    $project: { 
      _id: 0, 
      StudentName: 1, 
      isMySQL: { 
        $setIsSubset: [ ["MySQL"], "$StudentFavouriteSubject" ] 
      } 
    } 
  } 
]);

ফলাফল

{ "StudentName": "Chris", "isMySQL": false }
{ "StudentName": "Chris", "isMySQL": true }

ব্যাখ্যা:

  • প্রথম ডকুমেন্টে ["Java", "Python"] - এখানে "MySQL" নেই, তাই false।
  • দ্বিতীয় ডকুমেন্টে ["Java", "Python", "MySQL"] - এখানে "MySQL" আছে, তাই true।
  • $setIsSubset এর প্রথম আর্গুমেন্টটি সাবসেট অ্যারে (যে মানগুলো খুঁজছি), দ্বিতীয় আর্গুমেন্টটি সুপারসেট অ্যারে (যেখানে খুঁজছি)।

ব্যবহারিক উদাহরণ: ফিল্টারিং

db.subsetDemo.aggregate([
  { $match: { $expr: { $setIsSubset: [ ["MySQL"], "$StudentFavouriteSubject" ] } } },
  { $project: { StudentName: 1, StudentFavouriteSubject: 1 } }
]);

এটি শুধু "MySQL" থাকা ডকুমেন্টগুলো ফিল্টার করে দেবে।

  1. MongoDB-এ নেস্টেড (Nested) ডকুমেন্টে শর্ত লাগানো (Dot Notation + $gt)

  2. MongoDB অ্যাগ্রিগেশন: অ্যারে এলিমেন্টের সাবসেট যোগ করা ($first + $sum + $subtract)

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

  4. MongoDB এগ্রিগেশন ও প্রজেকশন: $project স্টেজ ব্যবহার