आप '$regex' की मदद से MongoDB में केस असंवेदनशील खोज को प्रतिबंधित कर सकते हैं। वाक्य रचना इस प्रकार है -
db.yourCollectionName.find({"yourFieldName" : { '$regex':'^yourValue$'}});
आप एक और रेगेक्स का उपयोग कर सकते हैं। वाक्य रचना इस प्रकार है -
db.yourCollectionName.find({"Name" : { '$regex':/^yourValue$/i}});
अवधारणा को समझने के लिए, आइए हम दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है -
> db.caseInsesitiveDemo.insertOne({"Name":"John"}); { "acknowledged" : true, "insertedId" : ObjectId("5c8bd66293c80e3f23815e83") } > db.caseInsesitiveDemo.insertOne({"Name":"Johnson"}); { "acknowledged" : true, "insertedId" : ObjectId("5c8bd66693c80e3f23815e84") } > db.caseInsesitiveDemo.insertOne({"Name":"Johny"}); { "acknowledged" : true, "insertedId" : ObjectId("5c8bd66a93c80e3f23815e85") }
संग्रह से सभी दस्तावेज़ों को ढूँढें () विधि की सहायता से प्रदर्शित करें। क्वेरी इस प्रकार है -
> db.caseInsesitiveDemo.find().pretty();
निम्न आउटपुट है -
{ "_id" : ObjectId("5c8bd66293c80e3f23815e83"), "Name" : "John" } { "_id" : ObjectId("5c8bd66693c80e3f23815e84"), "Name" : "Johnson" } { "_id" : ObjectId("5c8bd66a93c80e3f23815e85"), "Name" : "Johny" }
यदि आप नीचे रेगेक्स के प्रकार का उपयोग करते हैं तो सूची दस्तावेज़ दिखाई देंगे। क्वेरी इस प्रकार है -
> db.caseInsesitiveDemo.find({"Name" : { '$regex' : 'John' }});
निम्न आउटपुट है -
{ "_id" : ObjectId("5c8bd66293c80e3f23815e83"), "Name" : "John" } { "_id" : ObjectId("5c8bd66693c80e3f23815e84"), "Name" : "Johnson" } { "_id" : ObjectId("5c8bd66a93c80e3f23815e85"), "Name" : "Johny" }
केस 1 - यदि आप उन सभी दस्तावेजों को प्रदर्शित होने से प्रतिबंधित करना चाहते हैं, तो पहली क्वेरी का उपयोग करें -
> db.caseInsesitiveDemo.find({"Name" : { '$regex':'^John$'}});
निम्न आउटपुट है -
{ "_id" : ObjectId("5c8bd66293c80e3f23815e83"), "Name" : "John" }
उपरोक्त नमूना आउटपुट को देखें, केवल 'जॉन' प्रदर्शित हो रहा है..
केस 2 - यदि आप उन सभी दस्तावेज़ों को प्रदर्शित होने से प्रतिबंधित करना चाहते हैं, तो दूसरी क्वेरी का उपयोग करें।
क्वेरी इस प्रकार है -
> db.caseInsesitiveDemo.find({"Name" : { '$regex':/^John$/i}});
निम्न आउटपुट है -
{ "_id" : ObjectId("5c8bd66293c80e3f23815e83"), "Name" : "John" }