我正在尝试在我的应用程序中实现多租户。每个租户都将拥有一个单独的数据库。我计划根据子域名使用mongoose.useDb
方法为每个客户端动态更改/切换猫鼬数据库连接。当每个数据库都使用更改/切换时,我是否需要重新编译猫鼬模型模式useDb
?是否有任何替代方法可以通过在多个数据库连接之间共享模式来完成此任务。任何帮助将不胜感激。在此先感谢。
问问题
3059 次
2 回答
4
您可以轻松地使用Mongoose
规范中定义的多个连接:http: //mongoosejs.com/docs/connections.html#multiple_connections
您只需为每个连接设置模型。但是由于模型是为每个连接编译的 - 您应该有一些适当的功能来共享该代码。它可能非常基础,比如用简单的对象描述 Schema,然后将其填充到您的特定连接中:
var UserSchema = {
name: String
}
var connection1 = mongoose.createConnection('mongodb://localhost/connection1');
connection1.model('User', mongoose.Schema(UserSchema));
var connection2 = mongoose.createConnection('mongodb://localhost/connection2');
connection2.model('User', mongoose.Schema(UserSchema));
于 2016-03-16T13:44:51.363 回答
0
我将创建一个在用户登录后运行的条件,以确定系统应连接到哪个数据库。
于 2020-12-12T11:45:48.057 回答