sql >> Databáze >  >> NoSQL >> MongoDB

Sailsjs. Nejlepší způsob, jak vytvořit (a spravovat) indexy na sails-mongo (mongodb)

Protože nemáte povoleno spouštět 'migrate:alter' v produkci (i když se o to pokusíte), jednou z možností je vytvořit tyto indexy v bootstrap souboru ('config/bootstrap.js').

Představte si, že máte model uživatele, jako je tento:

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

module.exports = User;

Potom můžete ručně vytvořit chybějící indexy takto v bootstrap souboru:

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();
};

Index se vytvoří pouze jednou, další spuštění tyto indexy nevytvoří znovu. enureIndex byl alias pro funkci createIndex a jeho podpora byla ukončena.

Odkazy:

Reference pro správce vodních řad

Reference pro vytvoření indexu MongoDB



  1. MongoDB – Filtrování obsahu interního pole v sadě výsledků

  2. Jaký je nejlepší způsob ověření a autorizace webového řešení a řešení API, jako je MERN Stack?

  3. Zkontrolujte, zda je kolekce MongoDB omezena ovladačem .NET 2.0

  4. Přeložit DBRef do Json