MongoDB में फील्ड के सभी एलिमेंट्स की जांच के लिए find() में $elemMatch का उपयोग करें। $elemMatch ऑपरेटर उन दस्तावेज़ों से मेल खाता है जिनमें एक ऐरे फील्ड होता है जिसमें कम से कम एक एलिमेंट सभी निर्दिष्ट क्वेरी मानदंडों से मेल खाता है।
नमूना डेटा बनाना
> db.demo624.insertOne({"ListOfName":["John","Chris","David","Bob"]});
> db.demo624.insertOne({"ListOfName":["John","Chris"]});
> db.demo624.insertOne({"ListOfName":["John","Chris","Carol"]});
> db.demo624.insertOne({"ListOfName":["John","Chris","Bob"]});
> db.demo624.insertOne({"ListOfName":["John","Chris","Mike","Robert"]});
सभी दस्तावेज़ देखना
> db.demo624.find();
{ "ListOfName" : [ "John", "Chris", "David", "Bob" ] }
{ "ListOfName" : [ "John", "Chris" ] }
{ "ListOfName" : [ "John", "Chris", "Carol" ] }
{ "ListOfName" : [ "John", "Chris", "Bob" ] }
{ "ListOfName" : [ "John", "Chris", "Mike", "Robert" ] }
सुपरसेट में समाहित एलिमेंट्स की जांच क्वेरी
जांचें कि ListOfName के सभी एलिमेंट्स ["John", "Chris", "David", "Bob"] सुपरसेट में हैं:
> db.demo624.find({"ListOfName":{$not:{$elemMatch:{$nin:["John", "Chris", "David", "Bob"]}}}});
परिणाम (केवल वे दस्तावेज़ जिनके सभी एलिमेंट्स सुपरसेट में हैं):
{ "ListOfName" : [ "John", "Chris", "David", "Bob" ] }
{ "ListOfName" : [ "John", "Chris" ] }
{ "ListOfName" : [ "John", "Chris", "Bob" ] }
व्याख्या: $nin उन एलिमेंट्स को ढूंढता है जो सुपरसेट में नहीं हैं, $elemMatch ऐरे में ऐसे किसी एलिमेंट से मेल खाता है, और $not परिणाम को उलट देता है - इसलिए केवल वही दस्तावेज़ लौटाए जाते हैं जिनके सभी एलिमेंट्स सुपरसेट में मौजूद हैं।