2015-06-15 11 views
5

में आरोही या अवरोही के आधार पर फ़ील्ड पर एक अलग आकार क्यों होगा, मेरे संग्रह में "बनाए गए" फ़ील्ड के लिए मेरे पास दो एकल अनुक्रमणिका हैं। एक सूचकांक आरोही क्रमबद्ध है, और दूसरा अवरोही क्रमबद्ध है। इंडेक्स जो अवरोही क्रमबद्ध है, आरोही क्रमबद्ध इंडेक्स से बड़ा है। बनाए गए फ़ील्ड में जावास्क्रिप्ट दिनांक ऑब्जेक्ट होता है। इसका क्या कारण होगा?मोंगोडीबी

"indexSizes" : { 
    "_id_" : 212862160, 
    "created_1" : 136424736, 
    "created_-1" : 252376768 
}, 

संग्रह.getIndexes() से विवरण यहां दिया गया है। एकमात्र अंतर पृष्ठभूमि में अवरोही सूचकांक बनाया गया था।

{ 
    "v" : 1, 
    "key" : { 
     "created" : 1 
    }, 
    "name" : "created_1", 
    "ns" : "Production.accounts" 
}, 
{ 
    "v" : 1, 
    "key" : { 
     "created" : -1 
    }, 
    "name" : "created_-1", 
    "ns" : "Production.accounts", 
    "background" : true 
} 
+0

अब यह एक उचित पूछताछ है। खुद को सोचने का तरीका क्यों "आरोही" फ़ॉर्म आकार में '_id' सूचकांक से कम है। रिकॉर्ड के लिए, आप मान सकते हैं कि '_id' अगर 'ऑब्जेक्ट आईडी' पहले से ही" monotonic "या" हमेशा बढ़ रहा है "और इसलिए आपके संग्रह में" निर्माण आदेश "का एक प्राकृतिक संकेतक है। जब तक आपको पाठ्यक्रम के अन्य कारणों के लिए टाइमस्टैम्प की आवश्यकता न हो। –

+0

बनाए गए मूल्यों का प्रकार क्या है? क्या आप इसे फिर से बना सकते हैं? मैंने एक साधारण मोंगो संग्रह के साथ प्रयास किया और सूचकांक आकार आरोही/अवरोही – jcalloway

+2

के लिए समान हैं पृष्ठभूमि सूचकांक अग्रभूमि में बनाए गए लोगों की तुलना में बड़े होते हैं। साथ ही, आपको आरोही और अवरोही संस्करण दोनों बनाने की आवश्यकता नहीं है क्योंकि आदेश एकल-फ़ील्ड इंडेक्स के लिए कोई फर्क नहीं पड़ता है। – JohnnyHK

उत्तर

2

अंतर करने के लिए आरोही सूचकांक अग्रभूमि में बनाया जा रहा कारण है, और उतरते सूचकांक पृष्ठभूमि में बनाया जा रहा।

पृष्ठभूमि सूचकांक निर्माण पर the docs से:

पृष्ठभूमि सूचकांक बनाता है को पूरा करने और एक सूचकांक है कि शुरू में बड़े, कम या ज्यादा कॉम्पैक्ट, अग्रभूमि में बनाया गया एक सूचकांक की तुलना में में परिणाम की अधिक समय लग सकता। समय के साथ, पृष्ठभूमि में निर्मित इंडेक्स की कॉम्पैक्टनेस अग्रभूमि निर्मित इंडेक्स तक पहुंच जाएगी।

तो अगर आप इसे यथासंभव कॉम्पैक्ट के रूप में चाहते हैं तो अग्रभूमि में अपनी अनुक्रमणिका बनाएं, लेकिन समय के साथ एक पृष्ठभूमि सूचकांक भी अधिक कॉम्पैक्ट बन जाएगा।