MongoDB में हैशेज के ऐरे को खोजना
MongoDB में, आप डॉट नोटेशन का उपयोग करके ऑब्जेक्ट्स के ऐरे के अंदर नेस्टेड फील्ड्स को क्वेरी कर सकते हैं। यह ट्यूटोरियल दिखाता है कि उन डॉक्यूमेंट्स को कैसे ढूंढा जाए जहां एक ऐरे में एक विशिष्ट मान वाला ऑब्जेक्ट हो।
नमूना डेटा बनाना
सबसे पहले, TechnicalDetails नामक ऑब्जेक्ट्स के ऐरे वाले डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं:
> db.searchAnArrayDemo.insertOne({_id:1,"TechnicalDetails":[{"Language":"MongoDB"}]});
{ "acknowledged" : true, "insertedId" : 1 }
> db.searchAnArrayDemo.insertOne({_id:2,"TechnicalDetails":[{"Language":"MySQL"}]});
{ "acknowledged" : true, "insertedId" : 2 }
> db.searchAnArrayDemo.insertOne({_id:3,"TechnicalDetails":[{"Language":"MongoDB"}]});
{ "acknowledged" : true, "insertedId" : 3 }
> db.searchAnArrayDemo.insertOne({_id:4,"TechnicalDetails":[{"Language":"MongoDB"}]});
{ "acknowledged" : true, "insertedId" : 4 }
> db.searchAnArrayDemo.insertOne({_id:5,"TechnicalDetails":[{"Language":"Java"}]});
{ "acknowledged" : true, "insertedId" : 5 }
सभी डॉक्यूमेंट्स देखना
> db.searchAnArrayDemo.find().pretty();
आउटपुट:
{ "_id" : 1, "TechnicalDetails" : [ { "Language" : "MongoDB" } ] }
{ "_id" : 2, "TechnicalDetails" : [ { "Language" : "MySQL" } ] }
{ "_id" : 3, "TechnicalDetails" : [ { "Language" : "MongoDB" } ] }
{ "_id" : 4, "TechnicalDetails" : [ { "Language" : "MongoDB" } ] }
{ "_id" : 5, "TechnicalDetails" : [ { "Language" : "Java" } ] }
ऐरे के अंदर नेस्टेड फील्ड को क्वेरी करना
TechnicalDetails ऐरे के अंदर Language फील्ड में "MongoDB" वाले डॉक्यूमेंट्स को खोजने के लिए, डॉट नोटेशन का उपयोग करें:
> db.searchAnArrayDemo.find({'TechnicalDetails.Language':'MongoDB'}).count();
आउटपुट:
3
व्याख्या: क्वेरी 'TechnicalDetails.Language' प्रत्येक डॉक्यूमेंट में TechnicalDetails ऐरे को पार करती है और जांचती है कि क्या किसी ऑब्जेक्ट में Language फील्ड "MongoDB" के बराबर है। .count() विधि मिलान करने वाले डॉक्यूमेंट्स की संख्या लौटाती है।
मुख्य बिंदु
- नेस्टेड ऐरे फील्ड्स तक पहुंचने के लिए डॉट नोटेशन (
arrayName.fieldName) का उपयोग करें। - MongoDB स्वचालित रूप से ऐरे के अंदर ऑब्जेक्ट्स के माध्यम से पुनरावृति करता है।
- यह दृष्टिकोण ऑब्जेक्ट्स के ऐरे के साथ-साथ सरल मानों के ऐरे के लिए भी काम करता है।