मैं किसी बड़े संग्रह (3.500.000 दस्तावेज़, 35 जीबी) में किसी दिए गए फ़ील्ड के सभी विशिष्ट मान (10 से कम संभव मानों) को प्राप्त करने का प्रयास करता हूं।क्या मोंगो में बड़े संग्रह में विशिष्ट मूल्य प्राप्त करने का कोई अच्छा तरीका है?
मैंने इन मानों को db.collection.distinct('field')
के साथ प्राप्त करने का प्रयास किया, लेकिन यह बहुत धीमा है, भले ही कोई अनुक्रमणिका हो (ऐसा प्रतीत नहीं होता है)।
इस प्रश्न पर प्रदर्शन को बेहतर बनाने के लिए कोई सुझाव?
धन्यवाद
संपादित मैं मोंगो 2.4.9 उपयोग कर रहा था। इसे 2.5.5 (https://jira.mongodb.org/browse/SERVER-2094) में तय किया गया है, लेकिन मेरे पास अभी भी db.logs.distinct("version", {wsId: "XXX" })
जैसे प्रश्नों पर प्रदर्शन समस्या है, भले ही इंडेक्स दोनों फ़ील्ड के लिए मौजूद हों।
क्या आप अपनी दस्तावेज़ संरचना, अनुक्रमणिका और आउटपुट – Sebastian
को समझा सकते हैं मैंने अभी अपना प्रश्न संपादित किया है। मैं 2.4.9 संस्करण का उपयोग कर रहा हूं, ऐसा लगता है कि प्रदर्शन 2.5.5 में सुधार हुआ है। –
संग्रहित दस्तावेज़ बहुत आसान है। यह नेस्टेड फ़ील्ड के बिना एक दस्तावेज़ है, फ़ील्ड (परिणाम कोड) में एक साधारण सूचकांक है। { "वी": 1, "कुंजी": { "resultCode": 1 }, "एनएस": "app_logs.logs", "नाम": "resultCode_1" } –