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

MongoDB-তে ডুপ্লিকেট ID-র ভিত্তিতে রেটিংয় গড় বের করা ($avg + $ifNull)

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 হবে। বিজনেস লজিক অনুযায়ী নির্বাচন করুন।

  1. MongoDB-এ save() মেথড ব্যবহার করে অবজেক্ট সেভ এবং ফেরত পাওয়া

  2. MongoDB 3.x-এ ডুপ্লিকেট রেকর্ড রিমুভ করা

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

  4. MongoDB-তে অ্যারে ইন্টারসেকশনের ডেটা পাওয়া