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

MongoDB এগْرিগেশনে অ্যারের প্রথম এলিমেন্ট পাওয়া

MongoDB-এ অ্যারের প্রথম এলিমেন্ট পেতে $unwind এবং $group স্টেজ ব্যবহার করা হয়। বিকল্পভাবে $sliceও ব্যবহার করা যায়।

ডেমো কলেকশন তৈরি

> db.getFirstElementInArrayDemo.insertOne({"StudentName":"John","StudentSubject":["MongoDB","Python","MySQL"]}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9c41292d6669774125244e") } 
> db.getFirstElementInArrayDemo.insertOne({"StudentName":"Chris","StudentSubject":["Java","C"]}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9c413f2d6669774125244f") } 
> db.getFirstElementInArrayDemo.insertOne({"StudentName":"Robert","StudentSubject":["C++","Ruby"]}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9c41532d66697741252450") }

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

> db.getFirstElementInArrayDemo.find().pretty();

আউটপুট

{ "_id" : ObjectId("5c9c41292d6669774125244e"), "StudentName" : "John", "StudentSubject" : [ "MongoDB", "Python", "MySQL" ] } 
{ "_id" : ObjectId("5c9c413f2d6669774125244f"), "StudentName" : "Chris", "StudentSubject" : [ "Java", "C" ] } 
{ "_id" : ObjectId("5c9c41532d66697741252450"), "StudentName" : "Robert", "StudentSubject" : [ "C++", "Ruby" ] }

পদ্ধতি ১: এগْرিগেশন পাইপলাইন ($unwind + $group)

> db.getFirstElementInArrayDemo.aggregate([ 
    {$unwind:"$StudentSubject"}, 
    {$group:{"_id":"$_id","FirstElement":{$first:"$StudentSubject"}}}, 
    {$project:{"_id":0,"FirstElement":1}} 
]);

আউটপুট


পদ্ধতি ২: $slice অপারেটর (সरल ও দ্রুত)

> db.getFirstElementInArrayDemo.find({},{ "StudentSubject":{$slice:1} });

আউটপুট


তুলনা

পদ্ধতিব্যবহারিকতাপারফরম্যান্স
$unwind + $groupজটিল প্রসেসিংয়ের সময়धीম
$sliceসহজ ফিল্ড প্রজেকশনের জন্যদ্রুত

সুপারিশ

সহজেই প্রথম এলিমেন্ট পাওয়ার জন্য $slice: 1 ব্যবহার করুন। এটি আরও পঠনযোগ্য এবং পারফরম্যান্সে ভালো।

  1. MongoDB ডকুমেন্ট থেকে প্রথম অ্যারে এলিমেন্ট পাওয়া

  2. MongoDB-তে $group-এ সর্ট করে প্রথম দুটি ফিল্ড বের করা ($first + $$ROOT)

  3. MongoDB অ্যাগ্রিগেশন: নেস্টেড অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg + $unwind)

  4. PHP-তে অ্যারের প্রথম এলিমেন্ট পেতে