我们说我有一个服务app.js.每当新客户端连接到该服务时,我们将检查是否已为该客户端建立了mongodb连接。
如果它不可用,那么我们将从配置文件中获取服务器ip,dbname,集合名称,连接到db,并回复用户。
注意:我们可以随时向客户信息添加新客户端和相应信息。 (动态地)
客户端信息ClientId:ServerIp:数据库名称:集合名称我曾尝试将mongo对象存储在数组中,因此我可以根据用户会话数据中的数据库名称重用它们。但我一直遇到循环的json错误。如何存储多租户数据库连接?
async.eachSeries(conf.clientDbs.clientsList, function(clientDetails,callback){
console.log(clientDetails);
mongodb.MongoClient.connect(conf.clientDbs.connection+clientDetails.dbName, function (err, database) {
if (err) {
console.log(err);
process.exit(1);
}
// Save database object from the callback for reuse.
var tempdbobj = {};
tempdbobj["obj"] = database
allDbs[clientDetails.team_id] = tempdbobj;
console.log("Database connection ready for "+clientDetails.team_id);
allDbs[clientDetails.team_id].obj.collection('collection_name').find({"ref_id":"111"}, function(dberr, testDoc){
if (dberr) {
console.log(dberr);
callback();
}
else {
console.log(testDoc);
callback();
}
});
});
});