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

MongoDB অ্যাগ্রিগেশনে শর্তসাপেক্ষ $first (NULL বাদ দিয়ে প্রথম মান)

MongoDB অ্যাগ্রিগেশনে $first অপারেটর গ্রুপের প্রথম ডকুমেন্টের ফিল্ড রিটার্ন করে। কিন্তু যদি সেই ফিল্ড null হয়, তবে nullই রিটার্ন হবে। NULL বাদ দিয়ে প্রথম নন-নাল মান পাওয়ার জন্য $match দিয়ে আগে ফিল্টার করে নিতে হয়।

নমুনা ডেটা তৈরি (StudentSubject কিছু null)

> db.conditionalFirstDemo.insertOne({_id:100,"StudentName":"Chris","StudentSubject":null});
{ "acknowledged": true, "insertedId": 100 }
> db.conditionalFirstDemo.insertOne({_id:101,"StudentName":"Chris","StudentSubject":null});
{ "acknowledged": true, "insertedId": 101 }
> db.conditionalFirstDemo.insertOne({_id:102,"StudentName":"Chris","StudentSubject":"MongoDB"});
{ "acknowledged": true, "insertedId": 102 }
> db.conditionalFirstDemo.insertOne({_id:103,"StudentName":"Chris","StudentSubject":"MongoDB"});
{ "acknowledged": true, "insertedId": 103 }
> db.conditionalFirstDemo.insertOne({_id:104,"StudentName":"Chris","StudentSubject":null});
{ "acknowledged": true, "insertedId": 104 }

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

> db.conditionalFirstDemo.find();
আউটপুট:
{
  "_id": 100, "StudentName": "Chris", "StudentSubject": null
}
{
  "_id": 101, "StudentName": "Chris", "StudentSubject": null
}
{
  "_id": 102, "StudentName": "Chris", "StudentSubject": "MongoDB"
}
{
  "_id": 103, "StudentName": "Chris", "StudentSubject": "MongoDB"
}
{
  "_id": 104, "StudentName": "Chris", "StudentSubject": null
}

অ্যাগ্রিগেশন: StudentSubject null নয় এমন ডকুমেন্ট ফিল্টার করে গ্রুপ করে $first নেওয়া

> db.conditionalFirstDemo.aggregate([
  { "$match": { "StudentSubject": { "$ne": null } } },
  { "$group": {
      "_id": "$StudentName",
      "StudentSubject": { "$first": "$StudentSubject" }
    }
  }
]);
আউটপুট (Chris-এর প্রথম নন-নাল সাবজেক্ট):
{ "_id": "Chris", "StudentSubject": "MongoDB" }

ব্যাখ্যা: $match দিয়ে null মানগুলো বাদ দিয়ে পাইপলাইনে পাঠানো হয়েছে। তারপর $group-এ $first দিয়ে প্রথম মেলে মান নেওয়া হয়েছে। $ne: null দিয়ে null বাদ দেওয়া হয়েছে।

  1. MongoDB ডকুমেন্ট থেকে নাল ভ্যালু বাদ দেওয়া

  2. MongoDB এগ্রিগেশন: একাধিক ফিল্ড দিয়ে কাউন্ট করা

  3. MongoDB-এ Not Null চেক করা ($ne: null)

  4. MongoDB এগ্রিগেশন ও প্রজেকশন: $project স্টেজ ব্যবহার