MongoDB में विशिष्ट ऐरे इंडेक्स पर मान क्वेरी करना
MongoDB आपको डॉट नोटेशन के साथ इंडेक्स नंबर का उपयोग करके ऐरे में एक विशिष्ट स्थिति पर मान क्वेरी करने की अनुमति देता है (उदाहरण के लिए, arrayName.0 पहले तत्व के लिए)। यह सटीक स्थिति-आधारित मिलान के लिए उपयोगी है।
नमूना डेटा बनाना
> db.containsTrueValueDemo.insertOne({"IsMarried":[true,false,true,true,true,true,false,true,false,false,true]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd5039c2cba06f46efe9ef5") }
डॉक्यूमेंट देखना
> db.containsTrueValueDemo.find().pretty();
आउटपुट:
{
"_id" : ObjectId("5cd5039c2cba06f46efe9ef5"),
"IsMarried" : [ true, false, true, true, true, true, false, true, false, false, true ]
}
एकल इंडेक्स पर क्वेरी करना
जांचें कि इंडेक्स 2 (तीसरा तत्व) true है:
> db.containsTrueValueDemo.find({'IsMarried.2' : true});
आउटपुट: डॉक्यूमेंट लौटाता है क्योंकि इंडेक्स 2 पर मान true है।
मल्टीपल इंडेक्स पर क्वेरी करना ($and के साथ)
जांचें कि इंडेक्स 0 और इंडेक्स 2 दोनों true हैं:
> db.containsTrueValueDemo.find({
$and : [
{'IsMarried.0' : true},
{'IsMarried.2' : true}
]
});
आउटपुट: डॉक्यूमेंट लौटाता है क्योंकि दोनों शर्तें पूरी होती हैं।
मुख्य अवधारणाएं
- जीरो-बेस्ड इंडेक्सिंग: पहला तत्व इंडेक्स 0 पर होता है।
- डॉट नोटेशन:
arrayName.indexऐरे में एक विशिष्ट स्थिति को लक्षित करता है। - $and ऑपरेटर: एक ही ऐरे पर मल्टीपल स्थिति-आधारित शर्तों को संयोजित करता है।
- यदि ऐरे इंडेक्स से छोटा है, तो क्वेरी उस डॉक्यूमेंट के लिए कोई परिणाम नहीं लौटाएगी।
व्यावहारिक उपयोग के मामले
- बूलियन फ्लैग्स की एक निश्चित-लंबाई श्रृंखला में स्थिति की जांच करना।
- ऐरे में संग्रहीत समय-श्रृंखला डेटा में विशिष्ट समय स्लॉट मान्य करना।
- ऐरे तत्व क्रम मायने रखता है जहां स्कीमा लागू करना।