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

MongoDB অ্যাগ্রিগেশন-এ Min/Max অপারেশন করা

MongoDB-এ একটি ফিল্ডের সর্বনিম্ন (min) এবং সর্বোচ্চ (max) মান বের করতে অ্যাগ্রিগেশন পাইপলাইনে $group স্টেজের সাথে $min এবং $max অ্যাকুমুলেটর ব্যবহার করা হয়।

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

> db.demo251.insertOne({ "Marks": 78 });
{ "acknowledged": true, "insertedId": ObjectId("5e46c0001627c0c63e7dba74") }

> db.demo251.insertOne({ "Marks": 87 });
{ "acknowledged": true, "insertedId": ObjectId("5e46c0031627c0c63e7dba75") }

> db.demo251.insertOne({ "Marks": 56 });
{ "acknowledged": true, "insertedId": ObjectId("5e46c0061627c0c63e7dba76") }

> db.demo251.insertOne({ "Marks": 76 });
{ "acknowledged": true, "insertedId": ObjectId("5e46c00c1627c0c63e7dba77") }

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

> db.demo251.find();

আউটপুট:

{ "_id": ObjectId("5e46c0001627c0c63e7dba74"), "Marks": 78 }
{ "_id": ObjectId("5e46c0031627c0c63e7dba75"), "Marks": 87 }
{ "_id": ObjectId("5e46c0061627c0c63e7dba76"), "Marks": 56 }
{ "_id": ObjectId("5e46c00c1627c0c63e7dba77"), "Marks": 76 }

Min/Max অ্যাগ্রিগেশন

> db.demo251.aggregate([
  { 
    $group: { 
      _id: null, 
      MaxMarks: { $max: "$Marks" }, 
      MinMarks: { $min: "$Marks" } 
    } 
  }
]);

ফলাফল

{ "_id": null, "MaxMarks": 87, "MinMarks": 56 }

ব্যাখ্যা:

  • _id: null - সব ডকুমেন্ট একসাথে গ্রুপ করে।
  • $max: "$Marks" - Marks ফিল্ডের সর্বোচ্চ মান (৮৭)।
  • $min: "$Marks" - Marks ফিল্ডের সর্বনিম্ন মান (৫৬)।

গ্রুপ বাই করে Min/Max

যদি ক্যাটাগরি অনুযায়ী Min/Max লাগে:

db.demo251.aggregate([
  { $group: { 
      _id: "$Category", 
      MaxMarks: { $max: "$Marks" }, 
      MinMarks: { $min: "$Marks" } 
    } 
  }
]);

অন্যান্য অ্যাগ্রিগেশন অপারেটর

অপারেটরকাজ
$sumযোগফল
$avgগড়
$firstগ্রুপের প্রথম ভ্যালু
$lastগ্রুপের শেষ ভ্যালু
$pushসব ভ্যালু অ্যারেতে সংগ্রহ
$addToSetইউনিক ভ্যালু অ্যারেতে সংগ্রহ
$stdDevPopপপুলেশন স্ট্যান্ডার্ড ডেভিয়েশন
$stdDevSampস্যাম্পল স্ট্যান্ডার্ড ডেভিয়েশন

find() এ সর্ট করে লিমিট (সিম্পল Min/Max)

  • Max: db.demo251.find().sort({Marks: -1}).limit(1)
  • Min: db.demo251.find().sort({Marks: 1}).limit(1)

এটি ইন্ডেক্স ব্যবহার করে খুব দ্রুত, কিন্তু একসাথে Min/Max পাওয়া যায় না।

  1. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান অনুযায়ী ডকুমেন্ট ফিল্টার করা

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

  3. MongoDB এгреগেশন: অন্য ডকুমেন্টের সমান ID গুলো গ্রুপ করা

  4. MongoDB এগ্রিগেশন: একাধিক ফিল্ড দিয়ে কাউন্ট করা