MongoDB में रेगेक्स का उपयोग करके स्ट्रिंग पैटर्न खोजना
MongoDB में किसी फील्ड में विशिष्ट स्ट्रिंग या पैटर्न वाले दस्तावेज़ खोजने के लिए find() के साथ रेगेक्स (नियमित अभिव्यक्ति) का उपयोग करें।
उदाहरण: संग्रह और दस्तावेज़ बनाना
> db.demo409.insertOne({"Name":"John Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e70e4e515dc524f7022767c") }
> db.demo409.insertOne({"Name":"Chris Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e70e4ec15dc524f7022767d") }
> db.demo409.insertOne({"Name":"Robert Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e70e4f415dc524f7022767e") }
> db.demo409.insertOne({"Name":"David Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e70e4fe15dc524f7022767f") }
सभी दस्तावेज़ देखना
> db.demo409.find();
आउटपुट:
{ "_id" : ObjectId("5e70e4e515dc524f7022767c"), "Name" : "John Doe" }
{ "_id" : ObjectId("5e70e4ec15dc524f7022767d"), "Name" : "Chris Brown" }
{ "_id" : ObjectId("5e70e4f415dc524f7022767e"), "Name" : "Robert Doe" }
{ "_id" : ObjectId("5e70e4fe15dc524f7022767f"), "Name" : "David Brown" }
"Doe" स्ट्रिंग वाले दस्तावेज़ खोजना
> db.demo409.find({Name: /Doe/});
आउटपुट:
{ "_id" : ObjectId("5e70e4e515dc524f7022767c"), "Name" : "John Doe" }
{ "_id" : ObjectId("5e70e4f415dc524f7022767e"), "Name" : "Robert Doe" }
रेगेक्स पैटर्न और विकल्प:
| पैटर्न | विवरण | उदाहरण |
|---|---|---|
/Doe/ | सबस्ट्रिंग मिलान (केस-सेंसिटिव) | "John Doe", "Doe John" |
/^Doe/ | प्रीफिक्स मिलान (शुरुआत में) | "Doe John" |
/Doe$/ | सफ़िक्स मिलान (अंत में) | "John Doe" |
/doe/i | केस-इनसेंसिटिव | "john doe", "John DOE" |
/^John.*Doe$/ | पूरा पैटर्न | "John Doe", "John Smith Doe" |
प्रदर्शन नोट:
- एंकर वाले प्रीफिक्स रेगेक्स (
/^pattern/) इंडेक्स का उपयोग कर सकते हैं - सबस्ट्रिंग रेगेक्स (
/pattern/) पूर्ण संग्रह स्कैन करते हैं - बड़े डेटासेट के लिए टेक्स्ट इंडेक्स +
$textखोज बेहतर है
$regex ऑपरेटर सिंटैक्स (विकल्पों के साथ):
db.demo409.find({Name: {$regex: "Doe", $options: "i"}})