MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Sailsjs. Najlepszy sposób na tworzenie (i zarządzanie) indeksami na sails-mongo (mongodb)

Ponieważ nie możesz uruchomić 'migrate:alter' w środowisku produkcyjnym (nawet jeśli spróbujesz), jedną z opcji jest utworzenie tych indeksów w pliku startowym ('config/bootstrap.js').

Wyobraź sobie, że masz taki model użytkownika:

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

module.exports = User;

Następnie możesz ręcznie utworzyć brakujące indeksy w pliku ładowania początkowego:

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

Indeks jest tworzony tylko raz, kolejne uruchomienia nie spowodują odtworzenia tych indeksów.zapewnij indeks był aliasem funkcji createIndex i jest przestarzały.

Referencje:

Informacje o menedżerze linii wodnej

MongoDB Utwórz odwołanie do indeksu



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoError:to wdrożenie MongoDB nie obsługuje zapisów z ponowną próbą. Dodaj retryWrites=false do ciągu połączenia

  2. Jak sprawdzić, czy połączenie MongoDB jest aktywne w Node.js?

  3. Natywne maskowanie MongoDB (trzecia metoda)

  4. Spring Data MongoDB - $eq w ramach $project support

  5. MongoDB Nie można znaleźć wpisu, określając ts.t (ts jest typem sygnatury czasowej)