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 দেখতে পাবেন।