Sails.js 在sails中使用与admin不同的mongo数据库

Sails.js 在sails中使用与admin不同的mongo数据库,sails.js,sails-mongo,Sails.js,Sails Mongo,我正在努力与sails连接到mongodb数据库,该数据库使用名为“dbadmin”的数据库进行身份验证。作为DBA,我决定将所有用户集中在一个用户数据库中 我可以连接到这个“dbadmin”数据库,但sails抱怨它无法在那里创建集合 如何使用身份验证数据库,然后使用其他数据库进行收集?您可以在连接配置文件中定义两个数据库连接,然后直接在数据模型中传递连接 请参见示例: 在您的配置文件中 //server/config/connections.js dbadmin: { adapte

我正在努力与sails连接到mongodb数据库,该数据库使用名为“dbadmin”的数据库进行身份验证。作为DBA,我决定将所有用户集中在一个用户数据库中

我可以连接到这个“dbadmin”数据库,但sails抱怨它无法在那里创建集合


如何使用身份验证数据库,然后使用其他数据库进行收集?

您可以在连接配置文件中定义两个数据库连接,然后直接在数据模型中传递连接 请参见示例:

在您的配置文件中 //server/config/connections.js

 dbadmin: {
    adapter: 'sails-mongo',
    host: 'dbadmin-host',
    port: 27017,
    user: 'username', 
    password: 'password', 
    database: 'dbadmin'
  }

 dbuser: {
    adapter: 'sails-mongo',
    host: 'dbuser-host',
    port: 27017,
    user: 'username', 
    password: 'password', 
    database: 'dbuser'
  }
现在,您可以在模型中使用: //server/api/models/AdminUser.js

module.exports = {  
  connection:'dbadmin',
  attributes: {

    name : { type: 'string' },

    pass : { type: 'string' }
  }
};
//server/api/models/Users.js

module.exports = {  
  connection:'dbuser',
  attributes: {

    name : { type: 'string' },

    pass : { type: 'string' }
  }
};

注意:您不能在这两个模型之间进行任何收集。

您可以在连接配置文件中定义两个数据库连接,然后直接在数据模型中传递连接 请参见示例:

在您的配置文件中 //server/config/connections.js

 dbadmin: {
    adapter: 'sails-mongo',
    host: 'dbadmin-host',
    port: 27017,
    user: 'username', 
    password: 'password', 
    database: 'dbadmin'
  }

 dbuser: {
    adapter: 'sails-mongo',
    host: 'dbuser-host',
    port: 27017,
    user: 'username', 
    password: 'password', 
    database: 'dbuser'
  }
现在,您可以在模型中使用: //server/api/models/AdminUser.js

module.exports = {  
  connection:'dbadmin',
  attributes: {

    name : { type: 'string' },

    pass : { type: 'string' }
  }
};
//server/api/models/Users.js

module.exports = {  
  connection:'dbuser',
  attributes: {

    name : { type: 'string' },

    pass : { type: 'string' }
  }
};

注意:您不能在这两个模型之间进行任何收集。

事实证明,使用URL进行连接有更多的可能性。所以我所要做的就是在末尾追加
authSource=dbadmin

module.exports = {

    models: {
        connection: 'mongoRM'
    },

    connections: {
        mongoRM: {
            adapter: 'sails-mongo',
            url: 'mongodb://user:password@db_url:port/database?authSource=dbadmin'
        }
    }
}

事实证明,使用URL进行连接有更多的可能性。所以我所要做的就是在末尾追加
authSource=dbadmin

module.exports = {

    models: {
        connection: 'mongoRM'
    },

    connections: {
        mongoRM: {
            adapter: 'sails-mongo',
            url: 'mongodb://user:password@db_url:port/database?authSource=dbadmin'
        }
    }
}

感谢您的示例,但我说的是使用不同的数据库对用户进行身份验证,而不是使用两个不同的数据库。感谢您的示例,但我说的是使用不同的数据库对用户进行身份验证,而不是使用两个不同的数据库。