MongoDB-তে একই ID-র একাধিক রেটিং থাকলে (ডুপ্লিকেট ID), $group দিয়ে ID অনুযায়ী গ্রুপ করে $avg দিয়ে গড় বের করা হয়। Null রেটিং হ্যান্ডল করতে $ifNull ব্যবহার করা হয়।
উদাহরণ: ডুপ্লিকেট ID এবং রেটিং (null সহ)
> db.demo606.insertOne({ id: 1, rating: 5 });
> db.demo606.insertOne({ id: 1, rating: 4 });
> db.demo606.insertOne({ id: 2, rating: 3 });
> db.demo606.insertOne({ id: 1, rating: null });
> db.demo606.insertOne({ id: 2, rating: null });
> db.demo606.insertOne({ id: 2, rating: 3 });
অ্যাগ্রিগেশন: ID অনুযায়ী গড় রেটিং (null=0 গণ্য)
> db.demo606.aggregate([
{ $group: {
_id: "$id",
AverageRating: { $avg: { $ifNull: [ "$rating", 0 ] } }
}}
]);
আউটপুট:
{ "_id" : 2, "AverageRating" : 2 }
{ "_id" : 1, "AverageRating" : 3 }
গণনা:
- ID 1: (5 + 4 + 0) / 3 = 3
- ID 2: (3 + 0 + 3) / 3 = 2
বিকল্প: Null বাদ দিয়ে গড় (null игনোর):
{ $avg: "$rating" } // null মানগুলো অটোমেটিক ইগনোর হয়
তবে তখন ID 1: (5+4)/2=4.5, ID 2: (3+3)/2=3 হবে। বিজনেস লজিক অনুযায়ী নির্বাচন করুন।