आपकी क्वेरी को ऑप्टिमाइज़ करने के लिए बहुत सी चीज़ें हैं। मैं क्या कोशिश करूंगा:
-
जैसा कि एंथनी विंजलेट ने टिप्पणियों में कहा था, पहले चरण के रूप में संभव $ मैच चरण का उपयोग करें। इस तरह, आप निम्न चरणों में पारित दस्तावेज़ों की संख्या को कम कर सकते हैं, और अनुक्रमणिका का उपयोग कर सकते हैं।
-
मान लें कि आप कम से कम 3.6 मोंगो संस्करण का उपयोग करते हैं, 'लेट/पाइपलाइन' सिंटैक्स का उपयोग करके अपने लुकअप चरणों को बदलें (यहां देखें ) इस तरह, आप अपने लुकअप पाइपलाइन में अपने 'बाहरी फ़िल्टर' ("customer_info.status":{$ne:9}, "model_info.status":{$ne:9} ) को $मिलान चरण में एकीकृत कर सकते हैं। सही फ़ील्ड/संग्रह पर अनुक्रमणिका के साथ, आप अपने $lookup चरणों में कुछ समय/स्मृति प्राप्त करेंगे।
-
निम्नलिखित चरणों में पारित दस्तावेज़ों की संख्या को सीमित करने के लिए, जितना हो सके अपने आराम चरणों को करें।
यह समझना महत्वपूर्ण है कि एकत्रीकरण पाइपलाइन कैसे काम करती है:प्रत्येक चरण डेटा प्राप्त करता है, अपनी सामग्री करता है, और अगले चरण में डेटा पास करता है। इसलिए पाइपलाइन को जितना कम डेटा भेजा जाएगा, आपकी क्वेरी उतनी ही तेज़ होगी।