MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Sailsjs. Cách tốt nhất để tạo (và quản lý) các chỉ mục trên sails-mongo (mongodb)

Vì bạn không được phép chạy 'migrate:alter' trong sản xuất (ngay cả khi bạn thử), một tùy chọn là tạo chỉ mục đó trong tệp bootstrap ('config / bootstrap.js').

Hãy tưởng tượng bạn có một mô hình Người dùng như thế này:

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

module.exports = User;

Sau đó, bạn có thể tạo thủ công các chỉ mục bị thiếu như thế này trong tệp bootstrap:

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

Chỉ mục chỉ được tạo một lần, các lần chạy tiếp theo sẽ không tạo lại các chỉ mục đó. ensureIndex là một bí danh của hàm createIndex và nó đã không được dùng nữa.

Tài liệu tham khảo:

Tham chiếu trình quản lý đường nước

MongoDB tạo tham chiếu chỉ mục



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. chuyển đổi đối tượng mongodb thành đối tượng javascript

  2. Lưu trữ Dữ liệu XML trong một bộ sưu tập mongodb

  3. Làm cách nào để khôi phục cơ sở dữ liệu MongoDB bị rơi?

  4. Làm cách nào để chèn một tài liệu vào mongodb bằng cách sử dụng mongoose và lấy id đã tạo?

  5. Sử dụng SqlBulkCopy với MongoDB