Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में इंडेक्स n पर 'true' मान के लिए ऐरे को कैसे क्वेरी करें?

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 ऑपरेटर: एक ही ऐरे पर मल्टीपल स्थिति-आधारित शर्तों को संयोजित करता है।
  • यदि ऐरे इंडेक्स से छोटा है, तो क्वेरी उस डॉक्यूमेंट के लिए कोई परिणाम नहीं लौटाएगी।

व्यावहारिक उपयोग के मामले

  • बूलियन फ्लैग्स की एक निश्चित-लंबाई श्रृंखला में स्थिति की जांच करना।
  • ऐरे में संग्रहीत समय-श्रृंखला डेटा में विशिष्ट समय स्लॉट मान्य करना।
  • ऐरे तत्व क्रम मायने रखता है जहां स्कीमा लागू करना।
  1. MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें

    इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं: [ { id: 101, subjectid: [ 102 ] }, { id: 102, subjectid: [ 102 ] } ] सभी दस्तावेज़ देखने के लिए: db.collection.find() आउटपुट: [ { _id: ObjectId(5a934e000102030405000000),

  1. - MongoDB में सरणी के अंदर सरणी के लिए $addToSet लागू करें और मान जोड़ें

    इसके लिए, $addToSet के साथ update() का उपयोग करें। $addToSet ऑपरेटर मान को सरणी में जोड़ता है जब तक कि मान पहले से मौजूद न हो, जिस स्थिति में यह उस सरणी के लिए कुछ नहीं करता। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo509.insertOne( { value1 : [ { value2 : [

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de