रेगेक्स के साथ पैटर्न मिलान
MongoDB SQL के LIKE ऑपरेटर का समर्थन नहीं करता, लेकिन **रेगुलर एक्सप्रेशन (RegEx)** का उपयोग करके समान पैटर्न मिलान प्राप्त किया जा सकता है। /^pattern/ एंकर शुरुआत से मिलान करता है (SQL के LIKE 'pattern%' के समान)।
उदाहरण: डेटा डालना
> db.likeDemo.insertOne({"Name":"John",Age:32});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb84984623186894665ae41") }
> db.likeDemo.insertOne({"Name":"Chris",Age:25});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb84991623186894665ae42") }
> db.likeDemo.insertOne({"Name":"Carol",Age:22});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb849a1623186894665ae43") }
> db.likeDemo.insertOne({"Name":"Johnny",Age:22});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb849b2623186894665ae44") }
> db.likeDemo.insertOne({"Name":"James",Age:27});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb849bb623186894665ae45") }
सभी दस्तावेज़ देखना
> db.likeDemo.find().pretty();
आउटपुट:
"Jo" से शुरू होने वाले नाम ढूंढना (केस-इनसेंसिटिव)
> db.likeDemo.find({Name: /^Jo/i }).pretty();आउटपुट:
रेगेक्स पैटर्न तालिका:
| SQL LIKE | MongoDB RegEx | विवरण |
|---|---|---|
LIKE 'Jo%' | /^Jo/ | "Jo" से शुरू होता है |
LIKE '%hn' | /hn$/ | "hn" पर समाप्त होता है |
LIKE '%oh%' | /oh/ | "oh" कहीं भी होता है |
LIKE 'J%hn' | /^J.*hn$/ | "J" से शुरू, "hn" पर समाप्त |
| केस-इनसेंसिटिव | /pattern/i | अंत में i फ्लैग जोड़ें |
प्रदर्शन नोट: एंकर वाले रेगेक्स (^ से शुरू) इंडेक्स का उपयोग कर सकते हैं (यदि उपयुक्त इंडेक्स हो)। लीडिंग वाइल्डकार्ड (/.*pattern/) इंडेक्स का उपयोग नहीं कर सकते और धीमे होते हैं।