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

MongoDB-এ ইন্ডেক্স তৈরি করে নির্দিষ্ট মানের কাউন্ট দ্রুত বের করা

MongoDB-এ ইন্ডেক্স ও count() ব্যবহার করে দ্রুত গণনা

বড় কালেকশনে নির্দিষ্ট মানের ফ্রিকোয়েন্সি বের করতে সংশ্লিষ্ট ফিল্ডে ইন্ডেক্স থাকা খুব জরুরি। ইন্ডেক্স থাকলে count() (বা countDocuments()) খুব দ্রুত চলে কারণ শুধু ইন্ডেক্স স্ক্যান করে।

উদাহরণ: ইন্ডেক্স তৈরি ও ডেটা ইনসার্ট

> db.demo311.ensureIndex({"Name":1});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo311.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50cd01f8647eb59e562044") }
> db.demo311.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50cd05f8647eb59e562045") }
> db.demo311.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50cd06f8647eb59e562046") }
> db.demo311.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50cd0af8647eb59e562047") }
> db.demo311.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50cd0df8647eb59e562048") }
> db.demo311.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50cd0ff8647eb59e562049") }

সব ডকুমেন্ট দেখানো

> db.demo311.find();

আউটপুট:

{ "_id" : ObjectId("5e50cd01f8647eb59e562044"), "Name" : "Chris" }
{ "_id" : ObjectId("5e50cd05f8647eb59e562045"), "Name" : "David" }
{ "_id" : ObjectId("5e50cd06f8647eb59e562046"), "Name" : "David" }
{ "_id" : ObjectId("5e50cd0af8647eb59e562047"), "Name" : "Chris" }
{ "_id" : ObjectId("5e50cd0df8647eb59e562048"), "Name" : "Bob" }
{ "_id" : ObjectId("5e50cd0ff8647eb59e562049"), "Name" : "Chris" }

"Chris" মানটির কাউন্ট

> db.demo311.find({"Name":"Chris"}).count();

আউটপুট:

3

ব্যাখ্যা

  • ensureIndex({"Name":1}) — Name ফিল্ডে অ্যাসেন্ডিং ইন্ডেক্স। (createIndex() ব্যবহার করুন)।
  • find({"Name":"Chris"}).count() — কোয়ারি মিলা ডকুমেন্ট সংখ্যা। ইন্ডেক্স থাকায় কভারড কোয়ারি হয়, খুব দ্রুত।
  • নোট: count() ডিপ্রিকেটেড। countDocuments({}) বা estimatedDocumentCount() ব্যবহার করুন।

সর্বোত্তম অনুশীলন: বড় কালেকশনে কাউন্ট করার আগে নিশ্চিত করুন ইন্ডেক্স আছে। এক্সপ্লেন প্ল্যানে IXSCAN দেখতে পাবেন।

  1. MongoDB-এ অ্যারের ডকুমেন্ট কাউন্ট করা নির্দিষ্ট ফিল্ডের মান অনুযায়ী

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

  3. MySQL-এ নির্দিষ্ট কলাম মানের ফ্রিকোয়েন্সি (কাউন্ট) বের করা

  4. BitArray-এ নির্দিষ্ট পজিশনের বিটের মান পান C#-এ