यदि आपके पास MongoDB में एक छिपी हुई अनुक्रमणिका है, तो आप unhideIndex()
. का उपयोग कर सकते हैं विधि या collMod
इसे दिखाने के लिए प्रशासन आदेश।
उदाहरण अनुक्रमणिका
आइए pets
. नामक संग्रह पर अनुक्रमणिका पर एक नज़र डालें :
db.pets.getIndexes()
परिणाम:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "weight" : -1 }, "name" : "idx_weight_-1", "hidden" : true }, { "v" : 2, "hidden" : true, "key" : { "type" : 1 }, "name" : "type_1" } ]
हम देख सकते हैं कि तीन सूचकांक हैं, और अंतिम दो छिपे हुए हैं। हम यह जानते हैं क्योंकि उनके पास "hidden" : true
. है उनकी परिभाषा में।
unhideIndexes()
का उपयोग करके सामने लाएं विधि
किसी अनुक्रमणिका को दिखाने का पहला तरीका db.collection.unhideIndex()
का उपयोग करना है तरीका। यह विधि सूचकांक के नाम या उसके प्रमुख पैटर्न को एक पैरामीटर के रूप में स्वीकार करती है ताकि यह निर्दिष्ट किया जा सके कि किस सूचकांक को दिखाना है।
उदाहरण:
db.pets.unhideIndex("idx_weight_-1")
आउटपुट:
{ "hidden_old" : true, "hidden_new" : false, "ok" : 1 }
unhideIndex()
. का आउटपुट विधि hidden
. के लिए पुराना मान प्रदर्शित करती है फ़ील्ड (इस मामले में true
) और नया मान (इस मामले में false
)।
हालांकि, अगर हम पहले से छिपी हुई अनुक्रमणिका (या पहले से छिपी हुई अनुक्रमणिका को छिपाते हैं) को खोलते हैं, तो ये प्रदर्शित नहीं होती हैं, और हमें केवल निम्नलिखित मिलते हैं:
{ "ok" : 1 }
किसी भी स्थिति में, अनुक्रमणिका अब छिपी नहीं है।
unhideIndex()
विधि collMod
. के लिए एक आवरण है प्रशासन आदेश (नीचे)।
द collMod
कमांड
collMod
व्यवस्थापन आदेश हमें संग्रह में विकल्प जोड़ने या दृश्य परिभाषाओं को संशोधित करने में सक्षम बनाता है।
हम इसका उपयोग hidden: false
. पास करके किसी इंडेक्स को अनहाइड करने के लिए कर सकते हैं :
उदाहरण:
db.runCommand( {
collMod: "pets",
index: {
name: "type_1",
hidden: false
}
} )
परिणाम:
{ "hidden_old" : true, "hidden_new" : false, "ok" : 1 }
यह वही दस्तावेज़ देता है जो unhideIndex()
रिटर्न।
unhideIndex()
. के समान , आपके पास अनुक्रमणिका नाम या उसके प्रमुख पैटर्न को निर्दिष्ट करने का विकल्प होता है।
यहां कुंजी पैटर्न का उपयोग करने का एक उदाहरण दिया गया है:
db.runCommand( {
collMod: "pets",
index: {
keyPattern: { "type" : 1 },
hidden: false
}
} )
इस मामले में, सूचकांक को { "type" : 1 }
. का उपयोग करके परिभाषित किया गया था , और इसलिए इस परिभाषा का उपयोग अनुक्रमणिका नाम के बजाय किया जा सकता है।
परिवर्तन सत्यापित करें
हमारे परिवर्तनों को सत्यापित करने के लिए, हम getIndexes()
. पर कॉल कर सकते हैं फिर से सूचकांक की परिभाषा देखने के लिए:
db.pets.getIndexes()
परिणाम:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "weight" : -1 }, "name" : "idx_weight_-1" }, { "v" : 2, "key" : { "type" : 1 }, "name" : "type_1" } ]
जैसा कि अपेक्षित था, दोनों सूचकांकों को छिपाया गया है। हम hidden: true
. पास करके उन्हें फिर से छुपा भी सकते हैं ।
अनुक्रमणिका छुपा/दिखाई नहीं दे सकते? इस सेटिंग को जांचें।
mongod
featureCompatibilityVersion
कम से कम 4.4
. होना चाहिए इससे पहले कि आप इंडेक्स छुपा सकें। हालांकि, एक बार छुपाए जाने के बाद, एक इंडेक्स featureCompatibilityVersion
. के साथ भी छिपा रहेगा MongoDB 4.4 बायनेरिज़ पर 4.2 पर सेट करें।
आप featureCompatibilityVersion
. की जांच कर सकते हैं निम्नलिखित कोड के साथ सेटिंग:
db.adminCommand(
{
getParameter: 1,
featureCompatibilityVersion: 1
}
)
आप इसे setFeatureCompatibilityVersion
. का उपयोग करके सेट कर सकते हैं आदेश:
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
setFeatureCompatibilityVersion
कमांड को admin
. में चलाने की जरूरत है डेटाबेस।
यह भी ध्यान दें, आप _id
को छुपा नहीं सकते हैं सूचकांक।