आपको explain
चलाना चाहिए आपकी क्वेरी के विपरीत, यह आपको यह पता लगाने में मदद करेगा कि क्या हो रहा है।
यह संभव है कि Mongo फ़िल्टरिंग और सॉर्टिंग दोनों के लिए किसी अनुक्रमणिका का उपयोग नहीं कर रहा है। जब आप $or
. का उपयोग करते हैं , यह विकल्पों से मेल खाने के लिए एकाधिक अनुक्रमणिका का उपयोग कर सकता है। लेकिन जब आप sort
. जोड़ते हैं यह फ़िल्टरिंग के लिए उपलब्ध इंडेक्स का उपयोग नहीं कर सकता है।
जब आप किसी क्वेरी को सॉर्ट करना चाहते हैं, तो आपको यह सुनिश्चित करना होगा कि सॉर्ट किया गया फ़ील्ड उस इंडेक्स में है जिसे आप हिट करना चाहते हैं (आखिरी, या यह सॉर्ट करने के लिए इसका उपयोग नहीं कर सकता)।
आप एक इंडेक्स हिंट पास करके भी इसे तेज करने में सक्षम हो सकते हैं। मैं नहीं जानता कि आपकी क्वेरी कितने दस्तावेज़ों से मेल खाती है, लेकिन अगर यह एक छोटी संख्या है और आप सुनिश्चित करते हैं कि प्रारंभिक स्थितियां एक इंडेक्स को हिट कर रही हैं, तो _id
पर सॉर्ट करें जल्दी किया जा सकता है।