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

MongoDB-এ distinct() দিয়ে নির্দিষ্ট মানযুক্ত ডকুমেন্টের _id অ্যারে বের করা

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})-এর চেয়ে দ্রুত কারণ শুধু ইনডেক্স স্ক্যান করে (কভারড কোয়ারি)।

ব্যবহার ক্ষেত্র: শুধু আইডি লিস্ট দরকার হলে (যেমন অন্য কালেকশন জয়েনের জন্য) এটি আদর্শ।

  1. MongoDB-এ অ্যারে আইটেম গণনা করার পদ্ধতি

  2. MongoDB-এ অবজেক্ট অ্যারে থেকে নির্দিষ্ট আইটেম বের করা

  3. MongoDB-এ _id দিয়ে কালেকশন আইটেম ম্যাচ করা

  4. MongoDB-তে অ্যারে এলিমেন্টের সংখ্যা গুনে নতুন ফিল্ডে দেখানো ($size)