Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में विशिष्ट रिकॉर्ड मिलान के लिए रेगुलर एक्सप्रेशन

MongoDB में स्ट्रिंग पैटर्न मिलान के लिए रेगुलर एक्सप्रेशन (regex) का उपयोग करें। यह केस-सेंसिटिव और केस-इनसेंसिटिव दोनों खोज का समर्थन करता है।

उदाहरण

विभिन्न केस में नाम वाले दस्तावेज़ बनाएं:

> db.workingOfRegularExpressionDemo.insertOne({ "StudentDetails": { "StudentName": "John" }, "StudentAge": 21 });
{ "acknowledged" : true, "insertedId" : ObjectId("5cf227acb64a577be5a2bc07") }
> db.workingOfRegularExpressionDemo.insertOne({ "StudentDetails": { "StudentName": "JOHN" }, "StudentAge": 19 });
{ "acknowledged" : true, "insertedId" : ObjectId("5cf227b8b64a577be5a2bc08") }
> db.workingOfRegularExpressionDemo.insertOne({ "StudentDetails": { "StudentName": "Carol" }, "StudentAge": 20 });
{ "acknowledged" : true, "insertedId" : ObjectId("5cf227c2b64a577be5a2bc09") }

सभी दस्तावेज़ देखें:

> db.workingOfRegularExpressionDemo.find();
{ "_id" : ObjectId("5cf227acb64a577be5a2bc07"), "StudentDetails" : { "StudentName" : "John" }, "StudentAge" : 21 }
{ "_id" : ObjectId("5cf227b8b64a577be5a2bc08"), "StudentDetails" : { "StudentName" : "JOHN" }, "StudentAge" : 19 }
{ "_id" : ObjectId("5cf227c2b64a577be5a2bc09"), "StudentDetails" : { "StudentName" : "Carol" }, "StudentAge" : 20 }

केस-सेंसिटिव खोज: "JOHN"

> db.workingOfRegularExpressionDemo.find({'StudentDetails.StudentName': /JOHN/});
{ "_id" : ObjectId("5cf227b8b64a577be5a2bc08"), "StudentDetails" : { "StudentName" : "JOHN" }, "StudentAge" : 19 }

केस-इनसेंसिटिव खोज: सभी "john" वेरिएंट

> db.workingOfRegularExpressionDemo.find({'StudentDetails.StudentName': { $regex: 'JOHN', $options: 'i' }});
{ "_id" : ObjectId("5cf227acb64a577be5a2bc07"), "StudentDetails" : { "StudentName" : "John" }, "StudentAge" : 21 }
{ "_id" : ObjectId("5cf227b8b64a577be5a2bc08"), "StudentDetails" : { "StudentName" : "JOHN" }, "StudentAge" : 19 }
{ "_id" : ObjectId("5cf227c2b64a577be5a2bc09"), "StudentDetails" : { "StudentName" : "Carol" }, "StudentAge" : 20 }

रेगुलर एक्सप्रेशन विकल्प:

सिंटैक्स विकल्प:

// जावास्क्रिप्ट रेगएक्सप लिटरल
{field: /pattern/}

// $regex ऑपरेटर
{field: {$regex: "pattern", $options: "i"}}

चेतावनी: रेगुलर एक्सप्रेशन क्वेरी धीमी हो सकती हैं, विशेष रूप से एंकर (^pattern) के बिना। इंडेक्स उपयोग के लिए प्रीफिक्स पैटर्न (^John) बेहतर हैं।

  1. - पायथन में 'a' या 'b' से मेल खाने के लिए रेगुलर एक्सप्रेशन कैसे लिखें?

    निम्नलिखित कोड दिए गए पायथन स्ट्रिंग में a या b से मेल खाने के लिए रेगुलर एक्सप्रेशन (a|b) का उपयोग करता है। हम मेल खाते समय a या b के केस को अनदेखा करने के लिए फ्लैग re.I का भी उपयोग कर रहे हैं। उदाहरण import re s = Bank of Baroda print(re.findall(r(a|b), s, re.I)) आउटपुट यह आउटपुट देता है [B,

  1. - पायथन रेगुलर एक्सप्रेशन search और match में अंतर समझाएं

    re.match() और re.search() दोनों पायथन मॉड्यूल re के मेथड्स हैं। re.match() मेथड तभी मेल खाता है जब यह स्ट्रिंग की शुरुआत में होता है। उदाहरण के लिए, स्ट्रिंग TP Tutorials Point TP पर match() कॉल करना और पैटर्न TP खोजना मेल खाएगा। उदाहरण result = re.match(rTP, TP Tutorials Point TP) print result.g

  1. - पायथन रेगुलर एक्सप्रेशन में पैरेंथेसिस से कैसे मेल खाएं?

    निम्नलिखित कोड स्ट्रिंग s में पैरेंथेसिस से मेल खाता है और फिर स्ट्रिंग s1 में पैरेंथेसिस को हटाता है पायथन रेगुलर एक्सप्रेशन का उपयोग करके। उदाहरण import re s = I love book() result = re.search(r\(\), s) print result.group() s1 = I love book(s) result2 = re.sub(r[\(\)], , s1) print result2 आउटपु

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
विकल्पविवरण
iकेस-इनसेंसिटिव
mमल्टीलाइन (^ और $ लाइन ब्रेक से मेल)
xएक्सटेंडेड (व्हाइटस्पेस अनदेखा, टिप्पणी अनुमति)
sडॉट (.) न्यूलाइन से भी मेल