我正在努力将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' } } };
注意:您不能在这两个模型之间进行任何收集 .
事实证明,使用URL进行连接有更多可能性 . 所以我所要做的就是追加到最后 authSource=dbadmin
authSource=dbadmin
module.exports = { models: { connection: 'mongoRM' }, connections: { mongoRM: { adapter: 'sails-mongo', url: 'mongodb://user:password@db_url:port/database?authSource=dbadmin' } } }
2 回答
您可以在连接配置文件中定义两个数据库连接,然后可以直接在数据模型中传递连接,请参阅示例:
在配置文件中// server / config / connections.js
现在你可以在你的模型中使用:// server / api / models / AdminUser.js
// server / api / models / Users.js
注意:您不能在这两个模型之间进行任何收集 .
事实证明,使用URL进行连接有更多可能性 . 所以我所要做的就是追加到最后
authSource=dbadmin