我是MongoDB的新手。
当我创建node.js服务器时,我仅使用一个数据库连接(在启动时,我连接到该数据库)。 但是想像一下:我有一个数据库,其中包含一些通用表,还有更多数据库-每个数据库都用于自定义客户端。
如何在运行时创建那些数据库?
start.js:
const mongoose = require("mongoose");
// import environmental variables from variables.env file
require("dotenv").config({ path: "variables.env" });
mongoose.connect(process.env.DATABASE);
mongoose.Promise = global.Promise;
mongoose.connection.on("error", err => {
console.error(` → ${err.message}`);
});
require("./models/MaintenanceType");
require("./models/Maintenance");
const app = require("./app");
app.set("port", process.env.PORT || 7777);
const server = app.listen(app.get("port"), () => {
console.log('started');
});
variables.env(示例):
NODE_ENV=development
DATABASE=mongodb://db:qwe123@sometest.server.com:412345/webtest
PORT=1234
SECRET=webtest
KEY=webtestcom
和控制器:
const mongoose = require("mongoose");
const Maintenance = mongoose.model("Maintenance");
exports.createMaintenance = async (req, res) => {
const maintenance = await new Maintenance(req.body).save();
// ALSO create a db and table if not exists for this client and use it somehow
res.json(maintenance);
};
有可能吗?
答案 0 :(得分:0)
您可以创建新的连接
value_in_both(list1,list2,value)
但是创建新连接不是一个好主意,因此驱动程序具有使用现有连接来查询另一个数据库的功能,为此,您可以检查here所示的mongoose.connect('URI_FOR_ANOTHER_DATABASE')
方法