MongoDB में, dropIndexes()
विधि आपको संग्रह से एक या अधिक अनुक्रमणिका छोड़ने की अनुमति देती है।
किसी एकल अनुक्रमणिका को छोड़ने के लिए, अनुक्रमणिका का नाम या उसकी परिभाषा/विनिर्देश दस्तावेज़ पास करें। यदि यह एक टेक्स्ट इंडेक्स है, तो आप केवल इंडेक्स नाम निर्दिष्ट कर सकते हैं।
एकाधिक अनुक्रमणिका छोड़ने के लिए, अनुक्रमणिका नामों को एक सरणी में पास करें।
सभी इंडेक्स को छोड़ने के लिए (_id
. को छोड़कर) अनुक्रमणिका), कोई तर्क पारित न करें।
उदाहरण अनुक्रमणिका
मान लीजिए हमारे पास pets
. नामक संग्रह है . हम उपयोग कर सकते हैं getIndexes()
यह देखने के लिए कि इसमें कौन सी अनुक्रमणिकाएं हैं:
db.pets.getIndexes()
परिणाम:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "type" : 1 }, "name" : "type_1" }, { "v" : 2, "key" : { "name" : 1 }, "name" : "name_1", "hidden" : true }, { "v" : 2, "key" : { "weight" : -1 }, "name" : "weight_-1" } ]
इस मामले में हमारे पास चार इंडेक्स हैं। पहला _id
. के लिए डिफ़ॉल्ट इंडेक्स है खेत। जब आप कोई संग्रह बनाते हैं तो यह अनुक्रमणिका अपने आप बन जाती है, और इसे छोड़ा नहीं जा सकता।
अन्य तीन इंडेक्स कर सकते हैं गिरा दिया जाए।
एक एकल अनुक्रमणिका छोड़ें
किसी एकल अनुक्रमणिका को छोड़ने के लिए, अनुक्रमणिका नाम या उसके विनिर्देश दस्तावेज़ को पास करें।
उदाहरण:
db.pets.dropIndexes("weight_-1")
इस मामले में, हम अनुक्रमणिका नाम पास कर रहे हैं।
चलाने से निम्न आउटपुट प्राप्त होता है:
{ "nIndexesWas" : 4, "ok" : 1 }
यह हमें बताता है कि सूचकांक गिरा दिया गया था।
वैकल्पिक रूप से, हम इसके विनिर्देश दस्तावेज़ को पास करके इंडेक्स को गिरा सकते थे:
db.pets.dropIndexes( { "weight" : -1 } )
एकाधिक अनुक्रमणिका छोड़ें
यदि आप एक से अधिक अनुक्रमणिकाएँ छोड़ना चाहते हैं, लेकिन सभी अनुक्रमणिकाएँ नहीं, तो अनुक्रमणिका नामों को एक सरणी में पास करें।
उदाहरण:
db.pets.dropIndexes( [ "type_1", "name_1" ])
परिणाम:
{ "nIndexesWas" : 3, "ok" : 1 }
इस स्तर पर, आइए अपनी अनुक्रमणिकाओं की सूची की फिर से जाँच करें:
db.pets.getIndexes()
परिणाम:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
जैसा कि अपेक्षित था, तीन अनुक्रमणिका हटा दी गई हैं और केवल एक ही शेष है (और इसे हटाया नहीं जा सकता)।
सभी अनुक्रमणिका छोड़ें
आप dropIndexes()
. पर कॉल करके सभी इंडेक्स को ड्रॉप कर सकते हैं बिना किसी तर्क के विधि।
इस उदाहरण के लिए, इंडेक्स को products
. नामक संग्रह पर छोड़ दें . इस संग्रह में चार अनुक्रमणिकाएँ इस प्रकार हैं:
db.products.getIndexes()
परिणाम:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "product.$**" : 1 }, "name" : "product.$**_1" }, { "v" : 2, "key" : { "sizes" : 1 }, "name" : "sizes_1" }, { "v" : 2, "key" : { "stock" : -1 }, "name" : "stock_-1" } ]
अब सभी इंडेक्स को छोड़ दें:
db.products.dropIndexes()
परिणाम:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }
जैसा कि संदेश में बताया गया था, _id
. को छोड़कर सभी इंडेक्स हटा दिए गए थे अनुक्रमणिका। इस अनुक्रमणिका को छोड़ा नहीं जा सकता।
आइए फिर से अनुक्रमणिका की जाँच करें।
db.products.getIndexes()
परिणाम:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
जैसा अपेक्षित था, _id
इंडेक्स ही बचा है।
dropIndexes()
विधि dropIndexes
. के चारों ओर एक आवरण है आदेश।
MongoDB दस्तावेज़ीकरण
dropIndexes()
. पर अधिक जानकारी के लिए MongoDB दस्तावेज़ देखें विधि।