आप MongoDB में केस-इनसेंसिटिव खोज को '$regex' की मदद से प्रतिबंधित कर सकते हैं। सिंटैक्स इस प्रकार है:
db.yourCollectionName.find({ "yourFieldName" : { '$regex': '^yourValue$' } });
आप एक और regex का उपयोग कर सकते हैं। सिंटैक्स इस प्रकार है:
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") }
find() विधि की मदद से संग्रह से सभी दस्तावेज़ प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.caseInsesitiveDemo.find().pretty();
आउटपुट निम्न है:
{ "_id" : ObjectId("5c8bd66293c80e3f23815e83"), "Name" : "John" } { "_id" : ObjectId("5c8bd66693c80e3f23815e84"), "Name" : "Johnson" } { "_id" : ObjectId("5c8bd66a93c80e3f23815e85"), "Name" : "Johny" }
यदि आप नीचे दिए गए प्रकार के regex का उपयोग करते हैं तो सूची दस्तावेज़ दृश्यमान होंगे। क्वेरी इस प्रकार है:
> 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" }
उपरोक्त नमूना आउटपुट को देखें, केवल 'John' प्रदर्शित हो रहा है।
केस 2 - यदि आप उन सभी दस्तावेज़ों को प्रदर्शित होने से प्रतिबंधित करना चाहते हैं, तो दूसरी क्वेरी का उपयोग करें।
क्वेरी इस प्रकार है:
> db.caseInsesitiveDemo.find({ "Name" : { '$regex': /^John$/i } });
आउटपुट निम्न है:
{ "_id" : ObjectId("5c8bd66293c80e3f23815e83"), "Name" : "John" }