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

MongoDB-এ প্রতিটি ডকুমেন্টের গড় মান নির্ণয় এবং সর্ট করা

MongoDB-এ প্রতিটি ডকুমেন্টের অ্যারে ফিল্ডের গড় (average) মান বের করে সর্ট করতে অ্যাগ্রিগেশন পাইপলাইনে $addFields (বা $project) দিয়ে $avg ক্যালকুলেট করা এবং $sort দিয়ে সর্ট করা হয়।

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

> db.calculateAverage.insertOne({ 'Value': [10, 20, 80] });
{ "acknowledged": true, "insertedId": ObjectId("5e0383e3f5e889d7a51994dc") }

> db.calculateAverage.insertOne({ 'Value': [12, 15, 16] });
{ "acknowledged": true, "insertedId": ObjectId("5e0383edf5e889d7a51994dd") }

> db.calculateAverage.insertOne({ 'Value': [30, 35, 40] });
{ "acknowledged": true, "insertedId": ObjectId("5e0383f5f5e889d7a51994de") }

সমস্ত ডকুমেন্ট প্রদর্শন

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

আউটপুট:

{ "_id": ObjectId("5e0383e3f5e889d7a51994dc"), "Value": [ 10, 20, 80 ] }
{ "_id": ObjectId("5e0383edf5e889d7a51994dd"), "Value": [ 12, 15, 16 ] }
{ "_id": ObjectId("5e0383f5f5e889d7a51994de"), "Value": [ 30, 35, 40 ] }

গড় মান ক্যালকুলেট এবং সর্ট করার কোয়েরি

> db.calculateAverage.aggregate([
  { 
    $addFields: { 
      calavg: { $avg: "$Value" } 
    } 
  },
  { 
    $sort: { calavg: 1 } 
  }
]);

ফলাফল

{ "_id": ObjectId("5e0383edf5e889d7a51994dd"), "Value": [ 12, 15, 16 ], "calavg": 14.333333333333334 }
{ "_id": ObjectId("5e0383f5f5e889d7a51994de"), "Value": [ 30, 35, 40 ], "calavg": 35 }
{ "_id": ObjectId("5e0383e3f5e889d7a51994dc"), "Value": [ 10, 20, 80 ], "calavg": 36.666666666666664 }

ব্যাখ্যা:

  • $addFields - নতুন ফিল্ড calavg যোগ করে যেটিতে $avg: "$Value" দিয়ে অ্যারের গড় মান থাকে।
  • $sort: { calavg: 1 } - গড় মানের অ্যাসেন্ডিং অর্ডারে সর্ট করে।
  • ডকুমেন্ট ২ (১২, ১৫, ১৬) - গড় ১৪.৩৩ (নিম্নতম)
  • ডকুমেন্ট ৩ (৩০, ৩৫, ৪০) - গড় ৩৫
  • ডকুমেন্ট ১ (১০, ২০, ৮০) - গড় ৩৬.৬৭ (সর্বোচ্চ)

বিকল্প: $project ব্যবহার

db.calculateAverage.aggregate([
  { $project: { Value: 1, calavg: { $avg: "$Value" } } },
  { $sort: { calavg: 1 } }
]);

$project শুধু নির্দিষ্ট ফিল্ড রাখে, $addFields বিদ্যমান ফিল্ডের পাশাপাশি নতুন ফিল্ড যোগ করে।

  1. জাভাস্ক্রিপ্টে অ্যারেতে গড় (Average) গণনা

  2. MongoDB-তে নেস্টেড ডকুমেন্ট মান অনুসন্ধান

  3. MongoDB-এ নির্দিষ্ট ডকুমেন্টের ফিল্ড ইনক্রিমেন্ট করা ($inc অপারেটর)

  4. MongoDB-তে অ্যারের ভ্যালু অনুযায়ী কালেকশন সর্ট করা (aggregate + $unwind + $sort)