MongoDB में किसी फील्ड में विशेष स्ट्रिंग मौजूद है या नहीं चेक करने के लिए $regex ऑपरेटर का उपयोग करें।
सिंटैक्स
db.yourCollectionName.findOne({"yourFieldName": {$regex: ".*yourValue.*"}});
उदाहरण से समझें
एक कलेक्शन बनाकर डॉक्यूमेंट इन्सर्ट करते हैं:
> db.checkFieldContainsStringDemo.insertOne({"Id": 1, "Name": "John"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 2, "Name": "Johnson"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 3, "Name": "Carol"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 4, "Name": "Mike"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 5, "Name": "Sam"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 6, "Name": "Larry"});
सभी डॉक्यूमेंट देखने के लिए:
> db.checkFieldContainsStringDemo.find();
आउटपुट:
{ "_id": ..., "Id": 1, "Name": "John" }
{ "_id": ..., "Id": 2, "Name": "Johnson" }
{ "_id": ..., "Id": 3, "Name": "Carol" }
{ "_id": ..., "Id": 4, "Name": "Mike" }
{ "_id": ..., "Id": 5, "Name": "Sam" }
{ "_id": ..., "Id": 6, "Name": "Larry" }
अब "Johnson" स्ट्रिंग वाले फील्ड खोजें:
> db.checkFieldContainsStringDemo.findOne({"Name": {$regex: ".*Johnson.*"}});
आउटपुट:
{ "_id": ..., "Id": 2, "Name": "Johnson" }
.* वाइल्डकार्ड किसी भी कैरेक्टर सीक्वेंस को मैच करता है। केस-इनसेंसिटिव खोज के लिए /pattern/i सिंटैक्स का उपयोग करें।