MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में एक इंडेक्स को अनहाइड करने के 2 तरीके

यदि आपके पास 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 को छुपा नहीं सकते हैं सूचकांक।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ubuntu पर MongoDB का कौन सा संस्करण स्थापित है

  2. NodeJS और MongoDB FindAndModify () को हटाने या अपडेट करने की आवश्यकता है

  3. MongoDB:उप-दस्तावेज़ फ़ील्ड मानों की विशिष्ट सूची कैसे प्राप्त करें?

  4. MongoDB - प्रोजेक्शन क्वेरीज़

  5. MongoDB में लेन-देन की कमी के आसपास कैसे काम करें?