MongoDB-এ distinct() ব্যবহার করে শুধু _id অ্যারে আনা
যদি কোনো ফিল্ডে নির্দিষ্ট মান (যেমন "Mike") থাকা ডকুমেন্টগুলোর শুধু _id গুলো অ্যারে হিসেবে দরকার হয়, তবে distinct('_id', query) ব্যবহার করা হয়। এটি খুব দ্রুত এবং মেমরি-দক্ষ।
উদাহরণ: ডেটা ইনসার্ট
> db.demo151.insertOne({"ListOfNames":["Chris","David","Mike"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3513b6fdf09dd6d08539da") }
> db.demo151.insertOne({"ListOfNames":["Mike","Bob"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3513c4fdf09dd6d08539db") }
> db.demo151.insertOne({"ListOfNames":["John","David","Chris"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3513dcfdf09dd6d08539dc") }
সব ডকুমেন্ট দেখানো
> db.demo151.find();
আউটপুট:
{ "_id" : ObjectId("5e3513b6fdf09dd6d08539da"), "ListOfNames" : [ "Chris", "David", "Mike" ] }
{ "_id" : ObjectId("5e3513c4fdf09dd6d08539db"), "ListOfNames" : [ "Mike", "Bob" ] }
{ "_id" : ObjectId("5e3513dcfdf09dd6d08539dc"), "ListOfNames" : [ "John", "David", "Chris" ] }
distinct কোয়ারি (ListOfNames-এ "Mike" থাকা ডকুমেন্টের _id গুলো)
> db.demo151.distinct('_id', {'ListOfNames' : "Mike"});
আউটপুট:
[ ObjectId("5e3513b6fdf09dd6d08539da"), ObjectId("5e3513c4fdf09dd6d08539db") ]
ব্যাখ্যা
distinct('_id', {'ListOfNames':"Mike"})— প্রথম আর্গুমেন্ট ফিল্ড যেটার অনন্য মান চাই (_id), দ্বিতীয় আর্গুমেন্ট কোয়ারি ফিল্টার।- দুইটি ডকুমেন্টে "Mike" আছে, তাই দুটি ObjectId রিটার্ন হয়েছে।
- এটি
find({ListOfNames:"Mike"}, {_id:1})-এর চেয়ে দ্রুত কারণ শুধু ইনডেক্স স্ক্যান করে (কভারড কোয়ারি)।
ব্যবহার ক্ষেত্র: শুধু আইডি লিস্ট দরকার হলে (যেমন অন্য কালেকশন জয়েনের জন্য) এটি আদর্শ।