रेगेक्स में विशेष वर्णों को एस्केप करना
MongoDB में रेगेक्स का उपयोग करके खोज करते समय, विशेष वर्णों (जैसे $, ., *, आदि) को बैकस्लैश (\) से एस्केप करना होगा।
उदाहरण: '$' चरित्र वाले 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") }
सभी दस्तावेज़ देखना
> db.searchDocumentWithSpecialCharactersDemo.find().pretty();
"$John" वाली स्ट्रिंग खोजना
रेगेक्स में $ को \$ के रूप में एस्केप करें:
> db.searchDocumentWithSpecialCharactersDemo.find({ UserId : /.*\$John.*/i }).pretty();
आउटपुट:
महत्वपूर्ण:
/.../i: केस-इनसेंसिटिव रेगेक्स।\$: शाब्दिक '$' चरित्र से मेल खाता है (अन्यथा रेगेक्स में 'स्ट्रिंग का अंत' दर्शाता है)।.*: किसी भी वर्ण के शून्य या अधिक घटनाओं से मेल खाता है।
अन्य विशेष वर्णों (., *, +, ?, ^, $, {, }, [, ], |, (, ), \) के लिए भी इसी तरह एस्केप करें।