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

MongoDB-তে ডISTINCT ভ্যালুর সংখ্যা গণনার পদ্ধতি


MongoDB-তে distinct() এবং length ব্যবহার করে ইউনিক ভ্যালুর সংখ্যা গণনা করা

MongoDB-তে কোনো ফিল্ডের ইউনিক (distinct) ভ্যালুগুলো বের করে তার সংখ্যা জানতে distinct() মেথড এবং length প্রপার্টি ব্যবহার করা হয়।

সিন্ট্যাক্স:

db.yourCollectionName.distinct("yourFieldName").length;

ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন

> db.countDistinctDemo.insertOne({"StudentName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd6166de8cc557214c0dfa") }
> db.countDistinctDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd616ade8cc557214c0dfb") }
> db.countDistinctDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd616cde8cc557214c0dfc") }
> db.countDistinctDemo.insertOne({"StudentName":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd6170de8cc557214c0dfd") }
> db.countDistinctDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd6175de8cc557214c0dfe") }
> db.countDistinctDemo.insertOne({"StudentName":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd6181de8cc557214c0dff") }

ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন

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

আউটপুট:

{
  "_id" : ObjectId("5cbd6166de8cc557214c0dfa"),
  "StudentName" : "John"
}
{
  "_id" : ObjectId("5cbd616ade8cc557214c0dfb"),
  "StudentName" : "Chris"
}
{
  "_id" : ObjectId("5cbd616cde8cc557214c0dfc"),
  "StudentName" : "Chris"
}
{
  "_id" : ObjectId("5cbd6170de8cc557214c0dfd"),
  "StudentName" : "Carol"
}
{
  "_id" : ObjectId("5cbd6175de8cc557214c0dfe"),
  "StudentName" : "David"
}
{
  "_id" : ObjectId("5cbd6181de8cc557214c0dff"),
  "StudentName" : "Carol"
}

ধাপ ৩: ডISTINCT ভ্যালুর সংখ্যা গণনা করুন

> db.countDistinctDemo.distinct("StudentName").length;

ফলাফল:

4

ব্যাখ্যা:

  • distinct("StudentName") - StudentName ফিল্ডের সব ইউনিক ভ্যালু রিটার্ন করে: ["John", "Chris", "Carol", "David"]
  • .length - অ্যারেতি লেথ (৪) রিটার্ন করে
  • মোট ৬টি ডকুমেন্ট, কিন্তু ইউনিক নাম ৪টি (John, Chris, Carol, David)

বিকল্প পদ্ধতি (অগ리게শন):

db.countDistinctDemo.aggregate([
  { $group: { _id: "$StudentName" } },
  { $count: "distinctCount" }
])
এটি বড় ডেটাসেটের জন্য আরও পারফরম্যান্স দেয়।

  1. MongoDB-তে অ্যারের ভ্যালু অনুযায়ী কালেকশন সর্ট করা (aggregate + $unwind + $sort)

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

  3. MongoDB-এ কার্সর ইটারেশন কাউন্ট করা

  4. MySQL-এ নির্দিষ্ট ভ্যালু অনুযায়ী COUNT করা