MongoDB-এ কেস-ইনসেনসিটিভ (বড়/ছোট হাতের অক্ষর উপেক্ষা করে) সার্চ করার জন্য রেগুলার এক্সপ্রেশন (regex) এর i ফ্ল্যাগ ব্যবহার করা হয়। এটি স্ট্রিং ম্যাচিং-এ বড় ও ছোট হাতের অক্ষরের পার্থক্য না করে।
সিনট্যাক্স
db.yourCollectionName.find({ "yourFieldName": /^yourvalue$/i });
^- স্ট্রিংয়ের শুরু$- স্ট্রিংয়ের শেষi- কেস-ইনসেনসিটিভ ফ্ল্যাগ
নমুনা কালেকশন তৈরি
> db.caseInsensitiveDemo.insertOne({ "Name": "John" });
{ "acknowledged": true, "insertedId": ObjectId("5c6d7a67f2db199c1278e7ef") }
> db.caseInsensitiveDemo.insertOne({ "Name": "JOHN" });
{ "acknowledged": true, "insertedId": ObjectId("5c6d7ad6f2db199c1278e7f0") }
সমস্ত ডকুমেন্ট প্রদর্শন
> db.caseInsensitiveDemo.find();
আউটপুট:
{ "_id": ObjectId("5c6d7a67f2db199c1278e7ef"), "Name": "John" }
{ "_id": ObjectId("5c6d7ad6f2db199c1278e7f0"), "Name": "JOHN" }
কেস-ইনসেনসিটিভ কোয়েরি
> db.caseInsensitiveDemo.find({ "Name": /^john$/i });
ফলাফল
{ "_id": ObjectId("5c6d7a67f2db199c1278e7ef"), "Name": "John" }
{ "_id": ObjectId("5c6d7ad6f2db199c1278e7f0"), "Name": "JOHN" }
ব্যাখ্যা: রেগেক্স প্যাটার্ন /^john$/i "john", "John", "JOHN", "JoHn" সবকেসে ম্যাচ করবে। ^ এবং $ ব্যবহার না করলে আংশিক ম্যাচও হবে (যেমন "johnny")। সম্পূর্ণ শব্দ ম্যাচের জন্য এনকর ব্যবহার করা ভালো।
বিকল্প পদ্ধতি: $regex অপারেটর
db.caseInsensitiveDemo.find({ "Name": { $regex: "^john$", $options: "i" } });
এই পদ্ধতিও একই ফলাফল দেবে এবং আরও পঠনীয়।