我正在尝试实现一项功能,用户可以在登录时决定要连接到哪个DB的功能。由于它是一个Web应用程序,运行在所有客户端都可以使用的服务器上,因此如何在不更改每个客户端DB的情况下实现此功能?
在我们公司中,我们使用猫鼬作为MongoDB API。 我阅读了所有文档,但没有注意到在同一应用程序内一次使用多个连接到不同主机上不同数据库的多个连接的任何功能-而不会损害其他客户端的工作。
根据这篇文章,我完成的最有价值的事情是基于多个猫鼬实例打开几个连接: Mongoose and multiple database in single node.js project
我创建了一些文件,例如:
var mongoose = require('mongoose');
mongoose.createConnection('mongodb://10.20.100.71:27017/DB_NAME');
module.exports = exports = mongoose;
然后我要求他们:
let stageAccess = require('./databsesConnections/stageAccess');
let prodAccess = require('./databsesConnections/prodAccess');
我调试了文件并检查了连接是否建立。 此外,我检查了mongoose文档,并得出结论,我可以选择哪个连接为默认连接,如文档所述: “当您调用mongoose.connect()时,Mongoose将创建默认连接。您可以使用mongoose.connection访问默认连接。”
所以我尝试了:
mongoose.connection = mongoose.connections[1];
它工作正常。
因此,实际的问题是,如果客户端1接近该应用程序,选择连接dbNum1并开始工作,将会发生什么, 然后客户端2接近该应用程序并选择连接到dbNum2?