scanAndOrder: true
व्याख्या आउटपुट में इंगित करता है कि क्वेरी को दस्तावेज़ों को पुनः प्राप्त करना है और फिर आउटपुट वापस आने से पहले उन्हें स्मृति में सॉर्ट करना है। यह एक महंगा ऑपरेशन है, और आपकी क्वेरी के प्रदर्शन पर इसका प्रभाव पड़ेगा।
scanAndOrder: true
. का अस्तित्व साथ ही nscanned
. में अंतर एक n
व्याख्या आउटपुट में इंगित करता है कि क्वेरी इष्टतम अनुक्रमणिका का उपयोग नहीं कर रही है। इस मामले में ऐसा लगता है कि संग्रह स्कैन करने की आवश्यकता है। आप अपने sort
. में अनुक्रमणिका कुंजियों को शामिल करके इस समस्या को कम करने में सक्षम हो सकते हैं मानदंड। मेरे परीक्षण से:
db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()
स्कैन और ऑर्डर की आवश्यकता नहीं है, और n
returns लौटाता है और nscanned
आपके द्वारा खोजे जा रहे रिकॉर्ड की संख्या के बारे में। इसका मतलब hashtags
. पर सॉर्ट करना भी होगा कुंजी, जो आपके लिए उपयोगी हो भी सकती है और नहीं भी, लेकिन क्वेरी के प्रदर्शन को बढ़ा सकती है।