MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Sailsjs. Най-добрият начин за създаване (и управление) на индекси на sails-mongo (mongodb)

Тъй като не ви е позволено да изпълнявате „migrate:alter“ в производствената среда (дори и да опитате), една от опциите е да създадете тези индекси в началния файл („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();
};

Индексът се създава само веднъж, следващите изпълнения няма да пресъздадат тези индекси. ensureIndex беше псевдоним на функцията createIndex и беше отхвърлен.

Референции:

Справка за мениджъра на Waterline

Референция за създаване на индекс на MongoDB



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Продължаване и промиване - Doctrine и MongoDB

  2. Как да актуализирате стойностите на масива mongodb

  3. Не може да надстрои шардирана mongoDB или да спре балансиращото устройство

  4. Инсталирайте mongodb на azure devops хост за тестване

  5. Rails mongoid regex върху поле Integer