क्या आप कृपया अपने द्वारा बनाए गए कंपाउंड इंडेक्स को निर्दिष्ट कर सकते हैं। मेरे पास ज्यादा प्रतिष्ठा नहीं है इसलिए मैं टिप्पणी में यह नहीं पूछ सका। लेकिन मेरे पास आपके प्रश्न का संभावित उत्तर है। मोंगो "समानता-क्रमबद्ध-श्रेणी" नामक संपत्ति का उपयोग करता है जो एक अलग तरीके से व्यवहार करता है। नीचे की स्थिति पर विचार करें- आपके पास फ़ील्ड के साथ कुछ दस्तावेज़ हैं {नाम:स्ट्रिंग, पिन:छह अंकों की संख्या, एसएसएन:नौ अंकों की संख्या} और आपके पास दो सूचकांक हैं - {नाम:1, पिन:1, एसएसएन:1} और दूसरा सूचकांक है {नाम:1, एसएसएन:1, पिन:1} अब नीचे दिए गए प्रश्नों पर विचार करें:
db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1})
यह क्वेरी पहली अनुक्रमणिका का उपयोग करेगी क्योंकि हमारे पास निरंतरता में मिश्रित अनुक्रमणिका है। नाम, पिन, एसएसएन जारी है।db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1})
आप उम्मीद करेंगे कि इस क्वेरी में पहली अनुक्रमणिका का उपयोग किया जाएगा। लेकिन आश्चर्यजनक रूप से सेकंड इंडेक्स का उपयोग इस क्वेरी द्वारा किया जाएगा क्योंकि इसमें पिन पर रेंज ऑपरेशन होता है।
समानता-सॉर्ट-रेंज प्रॉपर्टी का कहना है कि क्वेरी प्लानर इंडेक्स का उपयोग फ़ील्ड पर करेगा जो सेवा करता है - "समानता-सॉर्ट-रेंज" बेहतर। दूसरी क्वेरी में पिन पर रेंज होती है, इसलिए दूसरी इंडेक्स का उपयोग किया जाएगा जबकि पहली क्वेरी में सभी क्षेत्रों में समानता है, इसलिए पहले इंडेक्स का उपयोग किया जाएगा।