MongoDB में SQL के LIKE ऑपरेटर के समान पैटर्न मिलान के लिए रेगुलर एक्सप्रेशन (regex) का उपयोग किया जाता है। सिंटैक्स /pattern/ है।
उदाहरण: छात्र नाम संग्रह
> db.demo26.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c9dc22d07d3b95082e79") }
> db.demo26.insertOne({"StudentName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c9e022d07d3b95082e7a") }
> db.demo26.insertOne({"StudentName":"Jones"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14ca7222d07d3b95082e7b") }
> db.demo26.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14ca7622d07d3b95082e7c") }
सभी दस्तावेज़ देखना
> db.demo26.find();
आउटपुट:
{ "_id" : ObjectId("5e14c9dc22d07d3b95082e79"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5e14c9e022d07d3b95082e7a"), "StudentName" : "John" }
{ "_id" : ObjectId("5e14ca7222d07d3b95082e7b"), "StudentName" : "Jones" }
{ "_id" : ObjectId("5e14ca7622d07d3b95082e7c"), "StudentName" : "David" }
Regex के साथ पैटर्न मिलान
"Jo" से शुरू होने वाले नाम खोजें (केस-सेंसिटिव):
> db.demo26.find({"StudentName":/Jo/});
आउटपुट:
{ "_id" : ObjectId("5e14c9e022d07d3b95082e7a"), "StudentName" : "John" }
{ "_id" : ObjectId("5e14ca7222d07d3b95082e7b"), "StudentName" : "Jones" }
उन्नत Regex विकल्प
- केस-इनसेंसिटिव:
/jo/i - शुरुआत में मिलान (^):
/^Jo/ - अंत में मिलान ($):
/n$/ - $regex ऑपरेटर:
{StudentName: {$regex: "Jo", $options: "i"}}
प्रदर्शन टिप
बड़े संग्रहों पर regex क्वेरी धीमी हो सकती हैं। प्रीफिक्स मिलान (/^Jo/) के लिए, फील्ड पर इंडेक्स बनाने पर विचार करें। पूर्ण-टेक्स्ट खोज के लिए MongoDB के $text इंडेक्स का उपयोग करें।