MongoDB-এ রেগেক্স কোয়ারির পারফরম্যান্স ইস্যু এড়াতে টেক্সট ইন্ডেক্স তৈরি করুন। একটি কালেকশন তৈরি করুন টেক্সট ইন্ডেক্সসহ:
> db.demo531.createIndex({"CountryName":"text","Name":"text"});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo531.insertOne({CountryName:"US","Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2b60ef4dcbee04fbbbf2") }
> db.demo531.insertOne({CountryName:"UK","Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2b6cef4dcbee04fbbbf3") }
> db.demo531.insertOne({CountryName:"AUS","Name":"chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2b74ef4dcbee04fbbbf4") }
> db.demo531.insertOne({CountryName:"US","Name":"CHRIS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2badef4dcbee04fbbbf5") }
find() দিয়ে ডকুমেন্ট দেখান:
> db.demo531.find();
আউটপুট:
টেক্সট ইন্ডেক্স ব্যবহার করে "chris" (কেস-ইনসেনসিটিভ) সার্চ করার কোয়ারি:
> db.demo531.find({CountryName: "US", "Name": { "$regex": "chris", "$options": "i" }}).limit(4);আউটপুট:
ব্যাখ্যা: টেক্সট ইন্ডেক্স (
"text") ফুল-টেক্সট সার্চের জন্য অপ্টিমাইজড। তবে এখানে রেগেক্স ব্যবহৃত হয়েছে। রেগেক্সে এনকোর (^chris) থাকলে ইন্ডেক্স ব্যবহার হয়, কিন্তু লিডিং 와일্ডকার্ড (/chris/) এ ইন্ডেক্স কাজ করে না। টেক্সট সার্চের জন্য$textঅপারেটর এবং টেক্সট ইন্ডেক্স সেরা পারফরম্যান্স দেয়।