MongoDB में सटीक मिलान (Exact Match) क्वेरी
MongoDB में किसी मान का सटीक मिलान करने के लिए, आप $exists ऑपरेटर का उपयोग कर सकते हैं जो किसी फ़ील्ड की उपस्थिति या अनुपस्थिति की जांच करता है। आइए एक संग्रह (collection) बनाते हैं और दस्तावेज़ (documents) डालते हैं:
नमूना डेटा बनाना
> db.demo290.insertOne({"ListOfName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4c0c9e5d93261e4bc9ea2d") }
> db.demo290.insertOne({"ListOfName":["Chris","David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4c0cb05d93261e4bc9ea2e") }
सभी दस्तावेज़ प्रदर्शित करना
> db.demo290.find();
आउटपुट:
{ "_id" : ObjectId("5e4c0c9e5d93261e4bc9ea2d"), "ListOfName" : "Chris" }
{ "_id" : ObjectId("5e4c0cb05d93261e4bc9ea2e"), "ListOfName" : [ "Chris", "David" ] }
सटीक मिलान के लिए क्वेरी
यहां हम $and ऑपरेटर का उपयोग करके दो शर्तें लागू कर रहे हैं: पहला, ListOfName.0 मौजूद नहीं होना चाहिए (यानी यह एक सरणी नहीं है), और दूसरा, ListOfName का मान "Chris" होना चाहिए।
> db.demo290.find({$and: [{'ListOfName.0': {$exists: false}}, {"ListOfName": 'Chris'}]});
आउटपुट:
{ "_id" : ObjectId("5e4c0c9e5d93261e4bc9ea2d"), "ListOfName" : "Chris" }
व्याख्या
{'ListOfName.0': {$exists: false}}- यह सुनिश्चित करता है किListOfNameएक सरणी नहीं है (क्योंकि सरणी में पहला तत्व इंडेक्स 0 पर होता है)।{"ListOfName": 'Chris'}- यह मान "Chris" से मेल खाता है।$and- दोनों शर्तों को जोड़ता है।
यह क्वेरी केवल वही दस्तावेज़ लौटाती है जहां ListOfName एक स्ट्रिंग "Chris" है, न कि सरणी जिसमें "Chris" शामिल हो।