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

MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান মэтচ করা ($match স্টেজ)

MongoDB Aggregation Pipeline-এ $match স্টেজ ব্যবহার করে নির্দিষ্ট ফিল্ড মান वाले ডকুমেন্টগুলো ফিল্টার করা হয়। এটি find()-এর মতো কাজ করে কিন্তু এগরিগেশন পাইপলাইনের ভেতরে ব্যবহার করা যায়।

উদাহরণ: কালেকশন ও ডেটা তৈরি

> db.demo555.insertOne({"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f21bf54b4472ed3e8e85f") }
> db.demo555.insertOne({"CountryName":"UK"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f21c254b4472ed3e8e860") }
> db.demo555.insertOne({"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f21c354b4472ed3e8e861") }
> db.demo555.insertOne({"CountryName":"AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f21c554b4472ed3e8e862") }
> db.demo555.insertOne({"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f21c754b4472ed3e8e863") }

সব ডকুমেন্ট দেখানো

> db.demo555.find();

আউটপুট:

{ "_id" : ObjectId("5e8f21bf54b4472ed3e8e85f"), "CountryName" : "US" }
{ "_id" : ObjectId("5e8f21c254b4472ed3e8e860"), "CountryName" : "UK" }
{ "_id" : ObjectId("5e8f21c354b4472ed3e8e861"), "CountryName" : "US" }
{ "_id" : ObjectId("5e8f21c554b4472ed3e8e862"), "CountryName" : "AUS" }
{ "_id" : ObjectId("5e8f21c754b4472ed3e8e863"), "CountryName" : "US" }

Aggregation কোয়েরি: "US" वाले ডকুমেন্ট কাউন্ট করা

> db.demo555.aggregate([
    { $match: { CountryName: 'US' } },
    { $group: { _id: null, Total: { $sum: 1 } } }
])

কোয়েরির ব্যাখ্যা

  1. $match: { CountryName: 'US' } — শুধু CountryName: "US" वाले ডকুমেন্টগুলো পাস করে।
  2. $group: { _id: null, Total: { $sum: 1 } } — সব ফিল্টার করা ডকুমেন্টকে এক গ্রুপে নিয়ে (_id: null) মোট সংখ্যা (Total) গণনা করে।

আউটপুট

{ "_id" : null, "Total" : 3 }

মোট ৩টি ডকুমেন্টে CountryName: "US" আছে।

মূল পয়েন্টসমূহ

  • $match এগরিগেশন পাইপলাইনের প্রথমে ব্যবহার করলে পারফরম্যান্স ভালো হয় (ইন্ডেক্স ব্যবহার করতে পারে)।
  • $group এ _id: null দিলে সব ডকুমেন্ট একসাথে গ্রুপ হয়।
  • $sum: 1 প্রতিটি ডকুমেন্টের জন্য ১ যোগ করে মোট কাউন্ট বের করে।
  1. MongoDB কোয়ারী: আইডি যদি ডকুমেন্ট ফিল্ড অ্যারে মানের সমান হয় তবে বাদ দেওয়া

  2. MongoDB-তে $elemMatch এবং $and দিয়ে অ্যারে ফিল্ডে একাধিক শর্ত মিলিয়ে ডকুমেন্ট বের করা

  3. MongoDB-এ নির্দিষ্ট সংখ্যা থেকে বড় ফিল্ড ভ্যালু वाले ডকুমেন্ট ফেচ করা

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা