$elemMatch प्रोजेक्शन ऑपरेटर
किसी सरणी फील्ड से **केवल वही तत्व** लौटाने के लिए जो विशिष्ट शर्त से मेल खाता हो, find() के प्रोजेक्शन पैरामीटर में $elemMatch ऑपरेटर का उपयोग करें। यह पूरी सरणी के बजाय केवल पहला मिलान वाला तत्व लौटाता है।
उदाहरण: नेस्टेड सरणी वाला दस्तावेज़ डालना
> db.extractSubArrayDemo.insertOne(
... {
... _id: 101,
... "clientName": "Larry",
... "ClientDetails": [
... { "ClientProjectName": "Online Game", "DeveloperTeamSize": 10 },
... { "ClientProjectName": "Pig Dice Game", "DeveloperTeamSize": 12 },
... { "ClientProjectName": "Web Student Tracker", "DeveloperTeamSize": 11 }
... ]
... }
... );
{ "acknowledged" : true, "insertedId" : 101 }
दस्तावेज़ देखना
> db.extractSubArrayDemo.find().pretty();
आउटपुट:
विशिष्ट प्रोजेक्ट तत्व निकालना
"Pig Dice Game" प्रोजेक्ट वाला तत्व निकालें:
> db.extractSubArrayDemo.find({ '_id': 101 }, { _id: 0, ClientDetails: { $elemMatch: {ClientProjectName: 'Pig Dice Game' } }}).pretty();आउटपुट:
व्याख्या: प्रोजेक्शन
{ ClientDetails: { $elemMatch: {ClientProjectName: 'Pig Dice Game' } } }MongoDB को निर्देश देता है किClientDetailsसरणी में से केवल उस तत्व को शामिल करें जहांClientProjectName"Pig Dice Game" हो। परिणाम अभी भी एक सरणी है (जिसमें एक तत्व है)।नोट:
$elemMatchप्रोजेक्शन केवल **पहले** मिलान वाले तत्व को लौटाता है। यदि एकाधिक तत्व मेल खाते हैं, तो केवल पहला शामिल होता है।