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

सेलज। सेल-मोंगो (मोंगोडब) पर इंडेक्स बनाने (और प्रबंधित करने) का सबसे अच्छा तरीका

चूंकि आपको उत्पादन में 'माइग्रेट:अल्टर' चलाने की अनुमति नहीं है (भले ही आप कोशिश करें), एक विकल्प उन इंडेक्स को बूटस्ट्रैप फ़ाइल ('config/bootstrap.js') में बनाना है।

कल्पना कीजिए कि आपके पास इस तरह का एक उपयोगकर्ता मॉडल है:

var User = {
  attributes: {
    email     : { type: 'string', unique: true, required: true },
    username  : { type: 'string', unique: true, required: true },
    pin: { type: 'string'}
  }
};

module.exports = User;

फिर आप बूटस्ट्रैप फ़ाइल में इस तरह से लापता इंडेक्स को मैन्युअल रूप से बना सकते हैं:

module.exports.bootstrap = async function(done) {
  console.log("Loading bootstrap...")

  if (process.env.NODE_ENV === 'test') {

  }

  if (process.env.NODE_ENV === 'production') {
      console.log("CREATING DATABASE INDEX BY HAND")

      // USER MODEL
      var db = User.getDatastore().manager;
      await db.collection(User.tableName).createIndex( { email: 1 }, {unique: true} );
      await db.collection(User.tableName).createIndex( { username: 1 }, {unique: true} );
      // PANDA MODEL
      // db = Panda.getDatastore().manager;
      // await db.collection(Panda.tableName).createIndex( { name: 1 }, {unique: true} );
  }

  // await initializeDatabase() // custom DB initialization...

  return done();
};

इंडेक्स केवल एक बार बनाया जाता है, बाद के रन उन इंडेक्स को फिर से नहीं बनाएंगे। सुनिश्चित इंडेक्स इंडेक्स फ़ंक्शन बनाने के लिए उपनाम था और इसे बहिष्कृत कर दिया गया है।

संदर्भ:

वाटरलाइन प्रबंधक संदर्भ

MongoDB इंडेक्स रेफरेंस बनाएं



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला पॉप्युलेट क्वेरी से शून्य मानों को कैसे बाहर करें

  2. MongoDb दस्तावेज़ आईडी के सामने अंडरस्कोर क्यों है?

  3. MongoDB कैप्ड संग्रह दस्तावेज़ों को नहीं हटा रहा है

  4. MongoDB:जब arrayFilters एक मैच नहीं ढूंढ सकता है तो उसे ऊपर उठाएं

  5. MongoDB - $text ऑपरेटर वाक्यांश या शब्द के लिए खोज करता है