MongoDB में $regex ऑपरेटर का उपयोग
MongoDB में पैटर्न मिलान और लचीली स्ट्रिंग खोज के लिए $regex ऑपरेटर का उपयोग किया जाता है। यह आपको उन डॉक्यूमेंट्स को फ़िल्टर करने की अनुमति देता है जहां किसी फ़ील्ड का मान निर्दिष्ट रेगुलर एक्सप्रेशन पैटर्न से मेल खाता है।
उदाहरण: नमूना डेटा तैयार करना
हम demo19 संग्रह में तीन डॉक्यूमेंट्स डालते हैं जिनमें अलग-अलग स्ट्रिंग पैटर्न हैं।
> db.demo19.insertOne({"Values": "4321GH"});
{ "acknowledged": true, "insertedId": ObjectId("5e1389b955d0fc6657d21f0f") }
> db.demo19.insertOne({"Values": "12321_Carol"});
{ "acknowledged": true, "insertedId": ObjectId("5e1389c755d0fc6657d21f10") }
> db.demo19.insertOne({"Values": "8765Mike"});
{ "acknowledged": true, "insertedId": ObjectId("5e1389d355d0fc6657d21f11") }
सभी डॉक्यूमेंट्स देखना
> db.demo19.find();
आउटपुट:
{ "_id": ObjectId("5e1389b955d0fc6657d21f0f"), "Values": "4321GH" }
{ "_id": ObjectId("5e1389c755d0fc6657d21f10"), "Values": "12321_Carol" }
{ "_id": ObjectId("5e1389d355d0fc6657d21f11"), "Values": "8765Mike" }
Regex के साथ खोज क्वेरी
निम्न क्वेरी उन डॉक्यूमेंट्स को ढूंढती है जहां Values फ़ील्ड "4321" या "8765" से शुरू होती है। $options: 'i' केस-इनसेंसिटिव खोज बनाता है।
> db.demo19.find({ Values: { $regex: /4321|8765/, $options: 'i' } });
परिणाम
{ "_id": ObjectId("5e1389b955d0fc6657d21f0f"), "Values": "4321GH" }
{ "_id": ObjectId("5e1389d355d0fc6657d21f11"), "Values": "8765Mike" }
केवल वही डॉक्यूमेंट्स वापस किए गए जो निर्दिष्ट पैटर्न से मेल खाते थे। 12321_Carol डॉक्यूमेंट बाहर कर दिया गया क्योंकि यह "4321" या "8765" से शुरू नहीं होता।