Regex-এ স্পেশাল ক্যারেক্টার এস্কেপ করা
Regex-এ স্পেশাল ক্যারেক্টার (যেমন $, ., * ইত্যাদি) সার্চ করার জন্য ব্যাকস্ল্যাশ (\) দিয়ে এস্কেপ করতে হয়।
উদাহরণ: ডকুমেন্ট তৈরি (UserId-তে $ আছে)
> db.searchDocumentWithSpecialCharactersDemo.insertOne({"UserId":"Smith$John123","UserFirstName":"John","UserLastName":"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c987b98330fd0aa0d2fe4b1") }
> db.searchDocumentWithSpecialCharactersDemo.insertOne({"UserId":"Taylor$Carol983","UserFirstName":"Carol","UserLastName":"Taylor"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c987bdb330fd0aa0d2fe4b2") }
> db.searchDocumentWithSpecialCharactersDemo.insertOne({"UserId":"Doe$John999","UserFirstName":"John","UserLastName":"Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c987bee330fd0aa0d2fe4b3") }
> db.searchDocumentWithSpecialCharactersDemo.insertOne({"UserId":"Miller$David555","UserFirstName":"David","UserLastName":"Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c987c01330fd0aa0d2fe4b4") }
Regex দিয়ে সার্চ: "John" যেগুলোতে $ সহ আছে
> db.searchDocumentWithSpecialCharactersDemo.find({
UserId: /.*\$John.*/i
}).pretty();
আউটপুট:
{ "UserId" : "Smith$John123", "UserFirstName" : "John", "UserLastName" : "Smith" }
{ "UserId" : "Doe$John999", "UserFirstName" : "John", "UserLastName" : "Doe" }
Regex ব্যাখ্যা
.*- যেকোনো ক্যারেক্টার (০ বা অধিক)\$- লিটারেল$ক্যারেক্টার (এস্কেপড)John- স্ট্রিং "John".*- যেকোনো ক্যারেক্টার/i- কেস-ইনসেনসিটিভ
টিপস: MongoDB শেল-এ স্ট্রিং-এ ডবল ব্যাকস্ল্যাশ (\\$) লিখতে হয় JSON/ড্রাইভারের জন্য।