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

MongoDB-এ দুটি ফিল্ড থেকে ডিস্টিংক্ট ভ্যালু নিয়ে সোর্টেড অ্যারে তৈরি


ভূমিকা

MongoDB-এ দুটি আলাদা ফিল্ডের ভ্যালুগুলো মিলিয়ে ডুপ্লিকেট বাদ দিয়ে সোর্টেড অ্যারে তৈরি করতে এগ্রিগেশন ফ্রেমওয়ার্কের $setUnion অপারেটর ব্যবহার করা হয়।

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

sortedArrayWithDistinctDemo কালেকশনে তিনটি ডকুমেন্ট ইনসার্ট করা হয়েছে, যেগুলোতে value1 এবং value2 নামক দুটি নümerিক ফিল্ড রয়েছে।

> db.sortedArrayWithDistinctDemo.insertOne( { value1: 4, value2: 5} );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc690b99cb58ca2b005e666") }
> db.sortedArrayWithDistinctDemo.insertOne( {value1: 5, value2: 6} );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc690b99cb58ca2b005e667") }
> db.sortedArrayWithDistinctDemo.insertOne( {value1: 7, value2: 4} );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc690b99cb58ca2b005e668") }

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

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

আউটপুট

{ "_id" : ObjectId("5cc690b99cb58ca2b005e666"), "value1" : 4, "value2" : 5 }
{ "_id" : ObjectId("5cc690b99cb58ca2b005e667"), "value1" : 5, "value2" : 6 }
{ "_id" : ObjectId("5cc690b99cb58ca2b005e668"), "value1" : 7, "value2" : 4 }

এগ্রিগেশন কোয়েরি

$group দিয়ে দুটি ফিল্ডের ভ্যালু দুটি আলাদা অ্যারে হিসেবে কালেক্ট করা হয়েছে, তারপর $project স্টেজে $setUnion ব্যবহার করে দুটি অ্যারে মার্জ করে ডুপ্লিকেট রিমুভ করা হয়েছে। MongoDB-এ $setUnion স্বয়ংক্রিয়ভাবেই সোর্টেড রেজাল্ট রিটার্ন করে।

> db.sortedArrayWithDistinctDemo.aggregate( [ { "$group": { "_id": null, "value1": { "$push": "$value1" }, "value2": { "$push": "$value2" }}}, { "$project": { "_id": 0, "bothValues": { "$setUnion": [ "$value1", "$value2" ] }}} ] );

ফলাফল

{ "bothValues" : [ 4, 5, 6, 7 ] }

নোট: $setUnion সেট থিওরির ইউনিয়ন অপারেশন করে এবং রেজাল্ট অ্যাসেন্ডিং অর্ডারে সোর্টেড থাকে।

  1. MongoDB-এ গড় (Average) এর চেয়ে বড় মান वाले ডকুমেন্ট বের করা

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

  3. MongoDB-তে অ্যাগ্রিগেশন দিয়ে ডISTINCT সিলেক্ট এবং কাউন্ট করা

  4. MySQL-এ অনন্য (Distinct) ভ্যালু এবং তাদের কাউন্ট বের করা