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

MongoDB-এ অ্যারে এলিমেন্টের টপ কাউন্ট মেইনটেইন করা


ভূমিকা

MongoDB-এ কালেকশনের সকল ডকুমেন্টের অ্যারে ফিল্ড থেকে সবচেয়ে বেশি tekrar হওয়া এলিমেন্টগুলো (টপ কাউন্ট) বের করতে এগ্রিগেশন ফ্রেমওয়ার্ক ব্যবহার করা হয়। এটি রিকমেন্ডেশন সিস্টেম বা পপুলার আইটেম খুঁজে বের করতে উপকারী।

নমুনা ডেটা তৈরি

topCountArrayDemo কালেকশনে তিনটি ডকুমেন্ট ইনসার্ট করা হয়েছে, প্রতিটিতে StudentSubject অ্যারে রয়েছে।

> db.topCountArrayDemo.insertOne( {"StudentId":101 , "StudentSubject": ["C", "MongoDB"]} );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6b3209cb58ca2b005e669") }
> db.topCountArrayDemo.insertOne( {"StudentId":102 , "StudentSubject": ["C", "Java"]} );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6b3219cb58ca2b005e66a") }
> db.topCountArrayDemo.insertOne( {"StudentId":103 , "StudentSubject": ["C", "MongoDB"]} );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6b3229cb58ca2b005e66b") }

ডকুমেন্ট প্রদর্শন

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

আউটপুট

{ "_id" : ObjectId("5cc6b3209cb58ca2b005e669"), "StudentId" : 101, "StudentSubject" : [ "C", "MongoDB" ] }
{ "_id" : ObjectId("5cc6b3219cb58ca2b005e66a"), "StudentId" : 102, "StudentSubject" : [ "C", "Java" ] }
{ "_id" : ObjectId("5cc6b3229cb58ca2b005e66b"), "StudentId" : 103, "StudentSubject" : [ "C", "MongoDB" ] }

টপ ২ সাবজেক্ট বের করার কোয়েরি

এগ্রিগেশন পাইপলাইন:
1. $unwind - অ্যারে এলিমেন্টগুলো আলাদা ডকুমেন্টে রূপান্তর।
2. $group - সাবজেক্ট অনুযায়ী গ্রুপ করে ফ্রিকোয়েন্সি কাউন্ট।
3. $sort - ফ্রিকোয়েন্সি অনুযায়ী ডিসেন্ডিং সর্ট।
4. $limit: 2 - শুধু টপ ২ টি দেখানো।

> db.topCountArrayDemo.aggregate( [ { $unwind: "$StudentSubject" }, { $group: { _id: "$StudentSubject", Frequency: {$sum: 1} } }, { $sort: {Frequency:-1} }, { $limit: 2 } ] ).pretty();

ফলাফল

{ "_id" : "C", "Frequency" : 3 }
{ "_id" : "MongoDB", "Frequency" : 2 }

ফলাফল: "C" ৩বার এবং "MongoDB" ২বার এসেছে, তাই এগুলো টপ ২।

  1. MongoDB অগরিগেশনে ম্যাক্স ভ্যালু সহ অ্যারে এলিমেন্ট ম্যাচ এবং গ্রুপ করা

  2. MongoDB অ্যাগ্রিগেশন: অ্যারে এলিমেন্টের সাবসেট যোগ করা ($first + $sum + $subtract)

  3. MongoDB ডকুমেন্টের নির্দিষ্ট ফিল্ড থেকে অ্যারে এলিমেন্ট কাউন্ট করা

  4. C#-এ দ্বিমাত্রিক অ্যারে থেকে এলিমেন্ট অ্যাক্সেস করা