$regex অপারেটর ব্যবহার করে কেস-ইনসেনসিটিভ ম্যাচিং
MongoDB-এ রেজেক্স (Regular Expression) ব্যবহার করে বড়/ছোট হাতের অক্ষর ব 생각하지 않고 সার্চ করা যায়।
সিনট্যাক্স (দুটি পদ্ধতি)
db.collection.find({ "field": { $regex: '^value$' } })— কেস-সেনসিটিভ এক্সাক্ট ম্যাচ।db.collection.find({ "field": { $regex: /^value$/i } })—iফ্ল্যাগ দিয়ে কেস-ইনসেনসিটিভ।
উদাহরণ
> db.caseInsesitiveDemo.insertOne({"Name":"John"});
> db.caseInsesitiveDemo.insertOne({"Name":"Johnson"});
> db.caseInsesitiveDemo.insertOne({"Name":"Johny"});
সাধারণ রেজেক্স (পার্শিয়াল ম্যাচ)
> db.caseInsesitiveDemo.find({ "Name": { $regex: 'John' } });
সবগুলো ম্যাচ করবে: John, Johnson, Johny
Case 1: এক্সাক্ট ম্যাচ (কেস-সেনসিটিভ)
> db.caseInsesitiveDemo.find({ "Name": { $regex: '^John$' } });
{ "_id" : ..., "Name" : "John" }
Case 2: এক্সাক্ট ম্যাচ (কেস-ইনসেনসিটিভ)
> db.caseInsesitiveDemo.find({ "Name": { $regex: /^John$/i } });
{ "_id" : ..., "Name" : "John" }
টিপস: রেজেক্স কোয়েরি ইনডেক্স ব্যবহার করতে পারে যদি এটি এনকর (^) দিয়ে শুরু হয় এবং কেস-ইনসেনসিটিভ না হয়। কেস-ইনসেনসিটিভ সার্চের জন্য টেক্সট ইনডেক্স বা $regex সাথে কোলেশন (collation) ব্যবহার করা ভালো।