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

MongoDB में $elemMatch के साथ इंडेक्स काम न करने पर समाधान

MongoDB में $elemMatch क्वेरी के लिए इंडेक्स उपयोग विश्लेषण

explain() विधि का उपयोग करके आप यह जांच सकते हैं कि आपकी क्वेरी इंडेक्स का उपयोग कर रही है या नहीं। $elemMatch के साथ इंडेक्स उपयोग विशिष्ट शर्तों पर निर्भर करता है।

इंडेक्स बनाना और डेटा डालना

> db.workingOfIndexesDemo.createIndex(
    {"Information.StudentDetails.StudentName":1},
    { sparse: true, background: true }
);
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }

> db.workingOfIndexesDemo.insertOne({"Information":{"StudentDetails":{"StudentName":"Chris"}}});
> db.workingOfIndexesDemo.insertOne({"Information":{"StudentDetails":{"StudentName":"David"}}});
> db.workingOfIndexesDemo.insertOne({"Information":{"StudentDetails":{"StudentName":"Mike"}}});

दस्तावेज़ देखना

> db.workingOfIndexesDemo.find();

आउटपुट:


नोट: डेटा संरचना ऐरे नहीं है

इस उदाहरण में StudentDetails एक **ऑब्जेक्ट** है, ऐरे नहीं। इसलिए $elemMatch यहां अनावश्यक है और इंडेक्स उपयोग को प्रभावित कर सकता है।

$elemMatch के साथ explain()

> db.workingOfIndexesDemo.find({
    "Information.StudentDetails": { 
        $elemMatch: { "StudentName" : "David" } 
    }
}).explain();

मुख्य आउटपुट भाग (winningPlan):


विश्लेषण

  • IXSCAN: इंडेक्स स्कैन उपयोग किया गया - इंडेक्स काम कर रहा है!
  • filter: $elemMatch फिल्टर FETCH स्टेज पर लागू होता है
  • isMultiKey: false: क्योंकि StudentDetails ऐरे नहीं है
  • indexBounds: इंडेक्स "David" तक सीमित है

$elemMatch के साथ इंडेक्स उपयोग के नियम

  1. ऐरे फ़ील्ड पर इंडेक्स: यदि फ़ील्ड ऐरे है, तो इंडेक्स मल्टीकी होता है (isMultiKey: true)
  2. सिंगल फ़ील्ट इंडेक्स: $elemMatch की शर्तें इंडेक्स प्रीफिक्स से मेल खानी चाहिए
  3. कंपाउंड इंडेक्स: $elemMatch एक ही ऐरे के अंदर एकाधिक फ़ील्ड्स के लिए कंपाउंड इंडेक्स का उपयोग कर सकता है

सही इंडेक्स बनाना (ऐरे के लिए)


निष्कर्ष

उदाहरण में इंडेक्स **काम कर रहा है** (IXSCAN दिखाता है)। $elemMatch इंडेक्स उपयोग को नहीं रोकता जब क्वेरी पैटर्न इंडेक्स परिभाषा से मेल खाता है।

  1. अपने आईफोन फ्लैशलाइट को ठीक करें: 9 त्वरित समाधान अपने आईफोन फ्लैशलाइट को ठीक करें: 9 त्वरित समाधान

    आपके आईफोन पर फ्लैशलाइट एक सुविधाजनक फीचर है जिसका उपयोग आप टेंट में पढ़ते समय, रात में कुत्ते को टहलाते समय गिरे हुए चाबियों को ढूंढते समय, आदि के लिए कर सकते हैं। यह पॉकेट फ्लैशलाइट जितना चमकीला नहीं हो सकता, लेकिन जब आपको इसकी तुरंत आवश्यकता होती है तो यह पर्याप्त से अधिक रोशनी पैदा करता है। दुर्

  1. पीसी से PS4 कंट्रोलर कनेक्ट करते समय PS4 ऑडियो समस्याएं ठीक करें पीसी से PS4 कंट्रोलर कनेक्ट करते समय PS4 ऑडियो समस्याएं ठीक करें

    क्या आप एक गेमर हैं और PS4 आपके पसंदीदा गेमिंग कंसोल में से एक है? अगर हां, तो यह लेख आप जैसे सभी शानदार खिलाड़ियों के लिए है। PS4 पर अपना पसंदीदा गेम खेलते समय, ऐसे मौके आ सकते हैं जब आप अचानक ऑडियो कट का अनुभव करते हैं, या PS4 ऑडियो काम करना बंद कर देता है। अगर आपने ऐसी स्थिति का सामना किया है, तो

  1. Windows Feedback Hub ठीक करें: त्वरित और विश्वसनीय समस्या निवारण चरण Windows Feedback Hub ठीक करें: त्वरित और विश्वसनीय समस्या निवारण चरण

    Microsoft मजबूत प्रतिक्रिया लेना और उन मुद्दों और त्रुटियों पर काम करना पसंद करता है जिनका उसके उपयोगकर्ता सामना कर रहे हैं। इसने Windows 10 में एक Feedback Hub ऐप भी पेश किया है जो उपयोगकर्ताओं को सीधे Microsoft को टिप्पणियां, सुझाव और शिकायतें भेजने में मदद करता है। ऐसी खबरें आई हैं कि यह ऐप काम न