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

MongoDB में एक इंडेक्स बनाने के 3 तरीके

MongoDB में, आप createIndex() . का उपयोग करके संग्रह पर एक इंडेक्स बना सकते हैं विधि, createIndexes() विधि, या createIndexes प्रशासन आदेश।

createIndex() विधि

db.collection.createIndex() विधि निर्दिष्ट संग्रह पर एक सूचकांक बनाता है। यह createIndexes . के लिए एक आवरण है प्रशासन आदेश।

उदाहरण:

db.pets.createIndex( { weight: -1 } )

यह पालतू जानवरों के संग्रह पर एक सूचकांक बनाता है। यह weight . पर अवरोही सूचकांक है खेत। हम जानते हैं कि यह घट रहा है क्योंकि हमने -1 . निर्दिष्ट किया है . अगर हम निर्दिष्ट करते हैं 1 यह आरोही होता।

एक कंपाउंड इंडेक्स वह होता है जिसे कई क्षेत्रों में परिभाषित किया जाता है। आप प्रत्येक फ़ील्ड को अल्पविराम से अलग करके एक मिश्रित अनुक्रमणिका बना सकते हैं।

उदाहरण:

db.pets.createIndex( { name: 1, type: -1 } )

यह name . पर एक कंपाउंड इंडेक्स बनाता है फ़ील्ड (आरोही क्रम में) और type फ़ील्ड (अवरोही क्रम में)।

createIndexes() विधि

db.collection.createIndexes() विधि संग्रह पर एक या अधिक अनुक्रमणिका बनाती है यह विधि createIndexes के लिए एक आवरण भी है प्रशासन आदेश।

जब आप createIndexes() . के साथ इंडेक्स बनाते हैं विधि, आपको फ़ील्ड को सरणी में प्रदान करने की आवश्यकता है। आपको ऐसा करने की ज़रूरत है, भले ही आप केवल एक इंडेक्स बना रहे हों।

उदाहरण:

db.pets.createIndexes( [ { weight: -1 } ] )

यह वही काम करता है जो पहला उदाहरण करता है। यह weight . पर एक अवरोही अनुक्रमणिका बनाता है फ़ील्ड.

एकाधिक अनुक्रमणिका बनाने के लिए, प्रत्येक अनुक्रमणिका के दस्तावेज़ को अल्पविराम से अलग करें।

उदाहरण:

db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )

आप createIndexes() . के साथ कंपाउंड इंडेक्स भी बना सकते हैं . ऐसा करने के लिए, बस उस इंडेक्स के लिए दस्तावेज़ के भीतर कंपाउंड इंडेक्स को परिभाषित करें।

इसलिए, हम निम्नलिखित कार्य कर सकते हैं:

db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )

यह name . के लिए एक कंपाउंड इंडेक्स बनाता है और type फ़ील्ड, और weight . के लिए एक अलग अनुक्रमणिका फ़ील्ड.

createIndexes कमांड

createIndexes व्यवस्थापन आदेश संग्रह पर एक या अधिक अनुक्रमणिका बनाता है पिछली दो विधियां इस आदेश के चारों ओर रैपर हैं।

इसलिए, हम createIndexes . का उपयोग कर सकते हैं इंडेक्स बनाने के लिए कमांड जो हमने पिछले उदाहरणों में किया था।

यहां name . पर एक इंडेक्स बनाने का एक उदाहरण दिया गया है फ़ील्ड:

db.runCommand(
  {
    createIndexes: "pets",
    indexes: [
      {
        key: { "name" : 1 },
        name: "idx_name_1"
      }
    ]
  }
)

पिछले उदाहरणों में हमने MongoDB को अपनी अनुक्रमणिका का नाम दिया था, लेकिन इस मामले में हमने अनुक्रमणिका का नाम idx_name_1 रखा था .

यहां एकाधिक अनुक्रमणिका बनाने का एक उदाहरण दिया गया है:

db.runCommand(
  {
    createIndexes: "pets",
    indexes: [
      {
        key: { "name" : 1, type: -1 },
        name: "idx_name_1_type_-1"
      },
      {
        key: { "weight" : -1 },
        name: "idx_weight_-1"
      }
    ]
  }
)

इस मामले में, पहला इंडेक्स name . पर एक कंपाउंड इंडेक्स है और type फ़ील्ड, और हमने इसे idx_name_1_type_-1 . नाम दिया है ।

दूसरी अनुक्रमणिका weight . पर है फ़ील्ड और हमने इसे idx_weight_-1 . कहा है ।

वाइल्डकार्ड अनुक्रमणिका

उपरोक्त तीनों दृष्टिकोण MongoDB 4.2 (featureCompatibilityVersion के अनुसार वाइल्डकार्ड अनुक्रमणिका का समर्थन करते हैं। कम से कम 4.2 . होना चाहिए वाइल्डकार्ड इंडेक्स बनाने के लिए)।

वाइल्डकार्ड इंडेक्स उन संग्रहों के लिए उपयोगी होते हैं जिनमें अलग-अलग पदानुक्रमों में अलग-अलग फ़ील्ड के साथ असंरचित डेटा होता है।

उदाहरण के लिए MongoDB में वाइल्डकार्ड इंडेक्स कैसे बनाएं देखें।

MongoDB दस्तावेज़ीकरण

नीचे उपरोक्त में से प्रत्येक के लिए MongoDB दस्तावेज़ीकरण के लिंक दिए गए हैं:

  • db.collection.createIndex()
  • db.collection.createIndexes()
  • createIndexes

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब में आईएसओडेट के साथ दिनांक क्वेरी काम नहीं कर रही है

  2. DataImportHandler का उपयोग करके MongoDB और Solr को जोड़ने के चरण

  3. मैं MongoDB के लिए फ़ील्ड-स्तरीय अनुमतियाँ कैसे लागू कर सकता हूँ?

  4. मोंगोडीबी $पाउ

  5. लूपबैक पर MongoDB एकत्रीकरण