MongoDB-এ SQL-এর LIKE-এর মতো কেস-ইনসেনসিটিভ (case-insensitive) প্যাটার্ন ম্যাচিং করার জন্য Regex-এ i অপশন (flag) ব্যবহার করা হয়। সিনট্যাক্স: /pattern/i।
উদাহরণ: কালেকশন ও ডেটা তৈরি
> db.demo686.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea55182a7e81adc6a0b395c") }
> db.demo686.insertOne({"FirstName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea55186a7e81adc6a0b395d") }
> db.demo686.insertOne({"FirstName":"ROBERT"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea5518fa7e81adc6a0b395e") }
> db.demo686.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea55195a7e81adc6a0b395f") }
> db.demo686.insertOne({"FirstName":"robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea5519ba7e81adc6a0b3960") }
সব ডকুমেন্ট দেখানো
> db.demo686.find();
আউটপুট:
{ "_id" : ObjectId("5ea55182a7e81adc6a0b395c"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5ea55186a7e81adc6a0b395d"), "FirstName" : "John" }
{ "_id" : ObjectId("5ea5518fa7e81adc6a0b395e"), "FirstName" : "ROBERT" }
{ "_id" : ObjectId("5ea55195a7e81adc6a0b395f"), "FirstName" : "David" }
{ "_id" : ObjectId("5ea5519ba7e81adc6a0b3960"), "FirstName" : "robert" }
Regex /Robert/i দিয়ে কেস-ইনসেনসিটিভ সার্চ
> db.demo686.find({ FirstName: /Robert/i });
আউটপুট
{ "_id" : ObjectId("5ea55182a7e81adc6a0b395c"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5ea5518fa7e81adc6a0b395e"), "FirstName" : "ROBERT" }
{ "_id" : ObjectId("5ea5519ba7e81adc6a0b3960"), "FirstName" : "robert" }
"Robert", "ROBERT", "robert" — তিনটি কেস-ইনসেনসিটিভ ম্যাচ করেছে। "John" এবং "David" ম্যাচ করেনি।
Regex ফ্ল্যাগ (Options) রেফারেন্স
| ফ্ল্যাগ | নাম | বর্ণনা |
|---|---|---|
i | Case-insensitive | বড়/ছোট হাতের অক্ষর পার্থক্য করবে না |
m | Multiline | ^ এবং $ লাইন শুরুর/শেষে ম্যাচ করবে |
s | Dotall | . নিউলাইন (\n) ও ম্যাচ করবে |
x | Extended | Regex-এ হোয়াইটস্পেস ও কমেন্ট игনোর করবে |
মূল পয়েন্টসমূহ
/pattern/i— কেস-ইনসেনসিটিভ ম্যাচ।/^pattern$/i— এক্সাক্ট ম্যাচ (whole string) কেস-ইনসেনসিটিভ।$regexঅপারেটরও ব্যবহার করা যায়:{ field: { $regex: "pattern", $options: "i" } }।- Regex কেস-সেনসিটিভ হয় ডিফল্টে।
- বড় ডেটাসেটে Regex ধীর; প্রিফিক্স রেজেক্স (
^prefix) ইন্ডেক্স ব্যবহার করতে পারে।