MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

क्वेरी के सिंटैक्स के आधार पर उप-दस्तावेज़ों पर MongoDB अनुक्रमणिका का उपयोग नहीं किया जा रहा है

मुझे लगता है कि मैंने इसे मोंगो दस्तावेजों की जांच के बाद समझ लिया। मूल रूप से, वहाँ है उन दोनों के बीच शब्दार्थ में अंतर। अनिवार्य रूप से, क्वेरी के पहले रूप में {c: {d: d1}} , mongo मानता है कि आप संपूर्ण . निर्दिष्ट कर रहे हैं उपदस्तावेज इसलिए यदि आपके पास एक उप-दस्तावेज़ है {c: {d: d1, e: e1}} , यह मेल नहीं खाएगा।

OTOH, क्वेरी का दूसरा रूप {'c.d': d1} तात्पर्य है कि आप उप-दस्तावेज़ के भीतर केवल एक फ़ील्ड पर एक मैच निर्दिष्ट कर रहे हैं। यह मेल खाएगा भले ही उप-दस्तावेज़ में अन्य फ़ील्ड या संपूर्ण उप-दस्तावेज़ हों।

यह अंतर सूचकांक तक फैला हुआ है। _ensureIndex({c: 1}) और _ensureIndex({'c.d': 1}) दो अलग-अलग अनुक्रमणिकाएं हैं, और भले ही पहला वाला संपूर्ण उप-दस्तावेज़ को अनुक्रमित करता है, लेकिन यदि आप c.d के साथ किसी व्यक्तिगत फ़ील्ड पर क्वेरी करते हैं तो इसका उपयोग नहीं किया जाएगा। संकेतन।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $elemMatch . के लिए MongoDB अनुक्रमणिका

  2. उल्का / मोंगो डीबी में डेटा अपलोड करें

  3. mongoDB के साथ उप-दस्तावेज़ में डालें

  4. नेवला कुल :$group . में रिकॉर्ड की संख्या सीमित करें

  5. ब्राउज़र के माध्यम से मोंगोडब से कनेक्ट हो रहा है?