MongoDB-এ রেগুলার এক্সপ্রেশন (Regex) ব্যবহার করে কেস-ইনসেনসিটিভ সার্চ
MongoDB-এ ডিফল্টভাবে স্ট্রিং মেলানো কেস-সেনসিটিভ। বড়/ছোট হাতের অক্ষর উপেক্ষা করে খুঁজতে /pattern/i রেগেক্স ব্যবহার করা হয়। এখানে i ফ্ল্যাগ মানে কেস-ইনসেনসিটিভ।
উদাহরণ: বিভিন্ন কেসে ডেটা ইনসার্ট
> db.demo314.insertOne({"Name":"Chris brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50d742f8647eb59e562056") }
> db.demo314.insertOne({"Name":"David Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50d743f8647eb59e562057") }
> db.demo314.insertOne({"Name":"CHRIS BROWN"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50d744f8647eb59e562058") }
> db.demo314.insertOne({"Name":"DAVID MILLER"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50d747f8647eb59e562059") }
> db.demo314.insertOne({"Name":"chris brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50d749f8647eb59e56205a") }
সব ডকুমেন্ট দেখানো
> db.demo314.find();
আউটপুট:
{ "_id" : ObjectId("5e50d742f8647eb59e562056"), "Name" : "Chris brown" }
{ "_id" : ObjectId("5e50d743f8647eb59e562057"), "Name" : "David Miller" }
{ "_id" : ObjectId("5e50d744f8647eb59e562058"), "Name" : "CHRIS BROWN" }
{ "_id" : ObjectId("5e50d747f8647eb59e562059"), "Name" : "DAVID MILLER" }
{ "_id" : ObjectId("5e50d749f8647eb59e56205a"), "Name" : "chris brown" }
কেস-ইনসেনসিটিভ কোয়ারি ("chris brown" সব কেসে)
> db.demo314.find({"Name":/chris brown/i});
আউটপুট:
{ "_id" : ObjectId("5e50d742f8647eb59e562056"), "Name" : "Chris brown" }
{ "_id" : ObjectId("5e50d744f8647eb59e562058"), "Name" : "CHRIS BROWN" }
{ "_id" : ObjectId("5e50d749f8647eb59e56205a"), "Name" : "chris brown" }
ব্যাখ্যা
/chris brown/i— জাভাস্ক্রিপ্ট রেগেক্স লিটারেল।iফ্ল্যাগ কেস উপেক্ষা করে।- তিনটি ডকুমেন্ট মেলে: "Chris brown", "CHRIS BROWN", "chris brown"।
- পারফরম্যান্স: রেগেক্স কোয়ারি সাধারণত ইন্ডেক্স ব্যবহার করে না (prefix regex ^ ছাড়া)। বড় কালেকশনে টেক্সট ইন্ডেক্স (
$text) বা কেস-নরমালাইজড ফিল্ড ভালো।
বিকল্প: {$regex: "chris brown", $options: "i"} সিনট্যাক্সও ব্যবহার করা যায়।