2015-02-23 7 views
6

पर एकाधिक इंडेक्स बनाना, मुझे एक बड़े मोंगोडीबी संग्रह में पांच इंडेक्स बनाने की आवश्यकता है। मैं इंडेक्स ऑपरेशन सुनिश्चित करने से परिचित हूं, लेकिन मुझे एक ही कमांड के साथ सभी पांच इंडेक्स बनाने का कोई तरीका नहीं पता है। क्या यह बैच इंडेक्स निर्माण मोंगोडीबी में संभव है?एक बार

उत्तर

-1

मुझे लगता है कि एकल आदेश का उपयोग करना संभव नहीं है, लेकिन आप अपनी खुद की स्क्रिप्ट बना सकते हैं जो समान प्रदर्शन करेगा। यदि आपका संग्रह आकार बड़ा है तो मैं आपको लॉकिंग की किसी भी समस्या को कम करने के लिए पृष्ठभूमि के साथ अलग-अलग इंडेक्स बनाने के लिए सुझाव देता हूं।

db.collection.ensureIndex({ a: 1 }, { background: true }) 
0

अब के लिए इसका कोई समाधान नहीं है।

पृष्ठभूमि डेटाबेस को लॉक करने से रोक देगा और अन्य परिचालन करने की अनुमति देगा। लेकिन उन परिचालनों को चलाने के लिए आपको नए मोंगो खोल खोलना होगा या उन्हें अपनी पसंद की भाषा (जैसे जेएस) में असीमित रूप से चलाने होंगे।

लेकिन यदि आपको मजबूत स्थिरता की आवश्यकता है और पृष्ठभूमि सूचकांक भवन की आवश्यकता नहीं है ... तो आपको शायद मोंगोडीबी मूल समाधान आने की प्रतीक्षा करनी होगी।

2

आप गलत कर रहे हैं, मोंगो createIndexes आदेश 2.6 के बाद से (2014 से पहले जारी किया गया)

https://docs.mongodb.com/v3.0/reference/command/createIndexes/

प्रलेखन कहते है, कि यह एक संग्रह के माध्यम से पारित की आवश्यकता है, तो यह लगभग 5 गुना तेजी से होना चाहिए।

3

यह खोल के भीतर बहुत आसान है, createIndexes के संग्रह के लिए एक विस्तार है और आप केवल उन चाबियों में गुजरते हैं जिन्हें आप इंडेक्स बनाना चाहते हैं।

db.test.createIndexes([ 
     { "a" : 1 }, 
     { "b" : 1 }, 
     { "c" : 1 }, 
     { "d" : 1 }, 
     { "e" : 1 } 
    ]); 

यह उसके बाद निम्न हमें दे देंगे

> db.test.getIndexes() 
[ 
     { 
       "v" : 2, 
       "key" : { 
         "_id" : 1 
       }, 
       "name" : "_id_", 
       "ns" : "test.test" 
     }, 
     { 
       "v" : 2, 
       "key" : { 
         "a" : 1 
       }, 
       "name" : "a_1", 
       "ns" : "test.test" 
     }, 
     { 
       "v" : 2, 
       "key" : { 
         "b" : 1 
       }, 
       "name" : "b_1", 
       "ns" : "test.test" 
     }, 
     { 
       "v" : 2, 
       "key" : { 
         "c" : 1 
       }, 
       "name" : "c_1", 
       "ns" : "test.test" 
     }, 
     { 
       "v" : 2, 
       "key" : { 
         "d" : 1 
       }, 
       "name" : "d_1", 
       "ns" : "test.test" 
     }, 
     { 
       "v" : 2, 
       "key" : { 
         "e" : 1 
       }, 
       "name" : "e_1", 
       "ns" : "test.test" 
     } 
] 
>