MongoDB में ऑब्जेक्ट की सरणी खोजने के लिए, आप $elemMatch ऑपरेटर का उपयोग कर सकते हैं। यह ऑपरेटर हमें किसी सरणी ऑब्जेक्ट से एक से अधिक घटक खोजने की अनुमति देता है।
उपरोक्त अवधारणा को समझने के लिए, आइए हम दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है -
> db.searchArrayDemo.insertOne({"EmployeeFirstName":"Adam","EmployeeLastName":"Smith","EmployeeDateOfBirth":new ISODate("1992-01-31 13:45:10"), ... "EmployeeSkills":["Spring and Hibernate Framework","Machine Learning"], ... "EmployeeDetails":[ ... { ... "EmployeePerformanceArea":"Java", ... "Year":2001 ... }, ... { ... "EmployeePerformanceArea":"Python", ... "Year":2005 ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c77b3812386c62d05142a6a") } > db.searchArrayDemo.insertOne({"EmployeeFirstName":"Carol","EmployeeLastName":"Taylor", "EmployeeDateOfBirth":new ISODate("1993-04-21 11:10:20"), "EmployeeSkills":["C++","Cloud Computing"], "EmployeeDetails":[ { "EmployeePerformanceArea":"C++", "Year":1998 }, { "EmployeePerformanceArea":"C++ Game Developer", "Year":2007 } ] } ); { "acknowledged" : true, "insertedId" : ObjectId("5c77b58f2386c62d05142a6b") }
संग्रह से सभी दस्तावेज़ों को ढूँढें () विधि की सहायता से प्रदर्शित करें। क्वेरी इस प्रकार है -
> db.searchArrayDemo.find().pretty();
निम्न आउटपुट है -
{ "_id" : ObjectId("5c77b3812386c62d05142a6a"), "EmployeeFirstName" : "Adam", "EmployeeLastName" : "Smith", "EmployeeDateOfBirth" : ISODate("1992-01-31T13:45:10Z"), "EmployeeSkills" : [ "Spring and Hibernate Framework", "Machine Learning" ], "EmployeeDetails" : [ { "EmployeePerformanceArea" : "Java", "Year" : 2001 }, { "EmployeePerformanceArea" : "Python", "Year" : 2005 } ] } { "_id" : ObjectId("5c77b58f2386c62d05142a6b"), "EmployeeFirstName" : "Carol", "EmployeeLastName" : "Taylor", "EmployeeDateOfBirth" : ISODate("1993-04-21T11:10:20Z"), "EmployeeSkills" : [ "C++", "Cloud Computing" ], "EmployeeDetails" : [ { "EmployeePerformanceArea" : "C++", "Year" : 1998 }, { "EmployeePerformanceArea" : "C++ Game Developer", "Year" : 2007 } ] }
यहाँ MongoDB में वस्तुओं की एक सरणी में खोज करने के लिए क्वेरी है।
केस 1
जब दिया गया तत्व मिल जाता है।
क्वेरी इस प्रकार है -
> db.searchArrayDemo.find({EmployeeDetails:{$elemMatch:{EmployeePerformanceArea : "C++", Year : 1998}}}).pretty();
निम्न आउटपुट है -
{ "_id" : ObjectId("5c77b58f2386c62d05142a6b"), "EmployeeFirstName" : "Carol", "EmployeeLastName" : "Taylor", "EmployeeDateOfBirth" : ISODate("1993-04-21T11:10:20Z"), "EmployeeSkills" : [ "C++", "Cloud Computing" ], "EmployeeDetails" : [ { "EmployeePerformanceArea" : "C++", "Year" : 1998 }, { "EmployeePerformanceArea" : "C++ Game Developer", "Year" : 2007 } ] }
केस 2
जब दिया गया तत्व नहीं मिलता है।
क्वेरी इस प्रकार है -
> db.searchArrayDemo.find({EmployeeDetails:{$elemMatch:{EmployeePerformanceArea : "C", Year : 1996}}}).pretty();
यहां दिया गया तत्व नहीं मिलने पर आपको कुछ नहीं मिलेगा