गिनती लगता है उन चीजों में से एक की तरह जो सस्ता होना चाहिए, लेकिन अक्सर ऐसा नहीं होता है। चूंकि मोंगो अपने बी-ट्री इंडेक्स में कुछ मानदंडों से मेल खाने वाले दस्तावेजों की संख्या की गिनती नहीं रखता है, इसलिए इसे इंडेक्स गिनती दस्तावेजों के माध्यम से स्कैन करने की आवश्यकता होती है। इसका मतलब है कि दस्तावेज़ों को 100 गुना गिनने में 100 गुना समय लगेगा, और मोटे तौर पर हम यहाँ यही देखते हैं -- 0.018 * 100 = 1.8s ।
इसे तेज करने के लिए, आपके पास कुछ विकल्प हैं:
- सक्रिय गणना मोटे तौर पर
estimatedDocumentCount() - db.users.countDocuments({status: 'inactive'})है . क्या यह आपके उपयोग के मामले के लिए पर्याप्त सटीक होगा? - वैकल्पिक रूप से, आप एक
countsबनाए रख सकते हैं एक अलग संग्रह में दस्तावेज़ जिसे आप अपने पास मौजूद सक्रिय/निष्क्रिय दस्तावेज़ों की संख्या के साथ समन्वयित रखते हैं।