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

MongoDB-এ অ্যারে সাইজ ফিল্ডের যোগফল বের করা

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

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

> db.demo231.insertOne({ "Subjects": ["MongoDB", "MySQL", "SQL Server"] });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc73ff4cebbeaebec5143") }

> db.demo231.insertOne({ "Subjects": ["Java", "C", "C++"] });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc757f4cebbeaebec5144") }

> db.demo231.insertOne({ "Subjects": ["Python", "Spring"] });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc762f4cebbeaebec5145") }

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

> db.demo231.find();

আউটপুট:

{ "_id": ObjectId("5e3fc73ff4cebbeaebec5143"), "Subjects": [ "MongoDB", "MySQL", "SQL Server" ] }
{ "_id": ObjectId("5e3fc757f4cebbeaebec5144"), "Subjects": [ "Java", "C", "C++" ] }
{ "_id": ObjectId("5e3fc762f4cebbeaebec5145"), "Subjects": [ "Python", "Spring" ] }

অ্যারে সাইজের মোট যোগফল

> db.demo231.aggregate([
  { 
    $group: { 
      _id: "_id", 
      ToTalValue: { $sum: { $size: "$Subjects" } } 
    } 
  }
]);

ফলাফল

{ "_id": "_id", "ToTalValue": 8 }

ব্যাখ্যা:

  • $size: "$Subjects" - প্রতিটি ডকুমেন্টের Subjects অ্যারের এলিমেন্ট সংখ্যা বের করে (৩, ৩, ২)।
  • $sum - সেগুলোর যোগফল করে (৩ + ৩ + ২ = ৮)।
  • _id: "_id" - সব ডকুমেন্ট এক গ্রুপে (স্ট্রিং "_id" ব্যবহার করা হয়েছে, null ও দিয়ে যাবে)।

প্রতিটি ডকুমেন্টের অ্যারে সাইজ আলাদা দেখাতে

db.demo231.aggregate([
  { $project: { Subjects: 1, SubjectCount: { $size: "$Subjects" } } }
]);

ফলাফল:

{ "_id": ObjectId("..."), "Subjects": [...], "SubjectCount": 3 }
{ "_id": ObjectId("..."), "Subjects": [...], "SubjectCount": 3 }
{ "_id": ObjectId("..."), "Subjects": [...], "SubjectCount": 2 }

নোট

$size শুধু অ্যাগ্রিগেশন পাইপলাইনে কাজ করে, সাধারণ find() কোয়েরিতে ব্যবহার করা যায় না।

  1. MongoDB-তে অ্যারে থেকে ফিল্ড তুলনা করে ডকুমেন্ট কোয়েরি করা

  2. MongoDB-এ OR শর্ত দিয়ে একাধিক ডকুমেন্ট বের করা ($or অপারেটর)

  3. MongoDB-এ অ্যারে ভ্যালু এবং অন্যান্য ফিল্ড কনক্যাটেনেট (Concatenate) করা

  4. MongoDB-এ অ্যারে ফিল্ডে সব এলিমেন্ট ম্যাচ করা ($all অপারেটর)