কাম্পাউন্ড ইনডেক্স, সর্ট এবং পেজিনেশন (limit/skip) একসাথে
MongoDB-এ কাস্টম ফিল্ড দিয়ে কম্পাউন্ড ইনডেক্স তৈরি করে, সেটি ব্যবহার করে সর্ট এবং পেজিনেশন (limit, skip) বাস্তবায়ন করা যায়। এটি কোয়েরি পারফরম্যান্স বাড়ায়।
কাম্পাউন্ড ইনডেক্স তৈরি এবং ডকুমেন্ট ইনসার্ট
> db.demo373.createIndex({"Name":1,"CountryName":1});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo373.insertOne({"Name":"Chris","Age":22,"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e59ffde2ae06a1609a00aff") }
> db.demo373.insertOne({"Name":"David","Age":21,"CountryName":"AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e59ffe82ae06a1609a00b00") }
> db.demo373.insertOne({"Name":"Bob","Age":23,"CountryName":"UK"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e59fff42ae06a1609a00b01") }
> db.demo373.insertOne({"Name":"John","Age":21,"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e59ffff2ae06a1609a00b02") }
> db.demo373.insertOne({"Name":"Carol","Age":23,"CountryName":"AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5a00082ae06a1609a00b03") }
সব ডকুমেন্ট দেখানো
> db.demo373.find();
আউটপুট:
ইনডেক্স ব্যবহার করে সর্ট এবং পেজিনেশন (skip 2, limit 4)
> db.demo373.find().sort({"Name":1, "Age":1}).limit(4).skip(2);ফলাফল (Name Ascending, Age Ascending, ২টা বাদ দিয়ে ৪টা):
ব্যাখ্যা: কম্পাউন্ড ইনডেক্স {Name:1, CountryName:1} সর্ট {Name:1, Age:1}-এ আংশিকভাবে হেল্প করে। পেজিনেশনে skip() এবং limit() ব্যবহার করা হয়। বড় ডেটায় skip() স্লো হতে পারে, সেক্ষেত্রে রেঞ্জ কোয়েরি ভালো।