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

MongoDB কোয়ারী: গড় মান ক্যালকুলেট করার পদ্ধতি

MongoDB-এ গড় (average) মান বের করতে অ্যাগ্রিগেশন পাইপলাইনে $avg অপারেটর ব্যবহার করা হয়। নিচে নেস্টেড ফিল্ডের গড় বের করার উদাহরণ দেওয়া হলো।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo80.insertOne({"Details":{"Price":10.5}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bf43271bf0181ecc42297") }
> db.demo80.insertOne({"Details":{"Price":50.3}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bf43871bf0181ecc42298") }
> db.demo80.insertOne({"Details":{"Price":100.10}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bf43f71bf0181ecc42299") }

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

> db.demo80.find();

আউটপুট:

{ "_id" : ObjectId("5e2bf43271bf0181ecc42297"), "Details" : { "Price" : 10.5 } }
{ "_id" : ObjectId("5e2bf43871bf0181ecc42298"), "Details" : { "Price" : 50.3 } }
{ "_id" : ObjectId("5e2bf43f71bf0181ecc42299"), "Details" : { "Price" : 100.1 } }

গড় মান বের করার কোয়ারী

$group স্টেজে _id: null দিয়ে সব ডকুমেন্ট একসাথে গ্রুপ করা হয়েছে এবং ডট নোটেশন $Details.Price দিয়ে নেস্টেড ফিল্ড অ্যাক্সেস করা হয়েছে:

> db.demo80.aggregate([
...   {
...     "$group": {
...       "_id": null,
...       "AvgValue": {
...         "$avg": "$Details.Price"
...       }
...     }
...   }
... ]);

ফলাফল

{ "_id" : null, "AvgValue" : 53.633333333333326 }

গণনা: (১০.৫ + ৫০.৩ + ১০০.১) / ৩ = ৫৩.৬৩৩৩...

বিকল্প পদ্ধতি: যদি আপনি প্রতিটি ডকুমেন্টের জন্য গড় চান (যেমন অ্যারেতে), তবে $project স্টেজে $avg ব্যবহার করুন।

নোট: $avg শুধু সংখ্যাসূচক মান গুনে, নন-নিউমেরিক মান অগ্রাহ্য করে।

  1. MongoDB-এ _id দিয়ে গ্রুপ করে ডকুমেন্ট কাউন্ট করা

  2. MongoDB-এ কালেকশন রিনেম করা (renameCollection)

  3. MongoDB-তে অ্যাগ্রিগেশন দিয়ে অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg)

  4. MySQL-এ কলামের গড় মান বের করা (AVG ফাংশন)