MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

mongodb.countDocuments धीमा होता है जब परिणाम सेट बड़ा होता है, भले ही अनुक्रमणिका का उपयोग किया जाता हो

गिनती लगता है उन चीजों में से एक की तरह जो सस्ता होना चाहिए, लेकिन अक्सर ऐसा नहीं होता है। चूंकि मोंगो अपने बी-ट्री इंडेक्स में कुछ मानदंडों से मेल खाने वाले दस्तावेजों की संख्या की गिनती नहीं रखता है, इसलिए इसे इंडेक्स गिनती दस्तावेजों के माध्यम से स्कैन करने की आवश्यकता होती है। इसका मतलब है कि दस्तावेज़ों को 100 गुना गिनने में 100 गुना समय लगेगा, और मोटे तौर पर हम यहाँ यही देखते हैं -- 0.018 * 100 = 1.8s

इसे तेज करने के लिए, आपके पास कुछ विकल्प हैं:

  1. सक्रिय गणना मोटे तौर पर estimatedDocumentCount() - db.users.countDocuments({status: 'inactive'}) है . क्या यह आपके उपयोग के मामले के लिए पर्याप्त सटीक होगा?
  2. वैकल्पिक रूप से, आप एक counts बनाए रख सकते हैं एक अलग संग्रह में दस्तावेज़ जिसे आप अपने पास मौजूद सक्रिय/निष्क्रिय दस्तावेज़ों की संख्या के साथ समन्वयित रखते हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. लूपबैक सत्यापन त्रुटि:`भूमिका` उदाहरण मान्य नहीं है। विवरण:`नाम` पहले से मौजूद है (मान:व्यवस्थापक)

  2. mongoDB में भू-स्थानिक जानकारी कैसे संग्रहीत करें?

  3. मैं उस नल को कैसे क्रमबद्ध कर सकता हूं जिसे आखिरी बार मोंगोडब में आदेश दिया गया है?

  4. नोड.जेएस डेटाबेस

  5. क्या आप मोंगो में $addToSet के लिए एक कुंजी निर्दिष्ट कर सकते हैं?