当前位置: 首页 > 知识库问答 >
问题:

在Express.js应用程序中打开多个MongoDB连接

吕鸿文
2023-03-14

我的主文件app.js连接到userDB我想添加第二个数据库postsDB

常量mongoose=require(“mongoose”);

常量app=express();

mongoose.set(“UseCreateIndex”,true);mongoose.set(“UseUnifiedTopology”,true);

Mongoose.connect(“MongoDB://localhost:27017/userDB”,{UseNewURLParser:true});

共有1个答案

高化
2023-03-14

如果它们是同一服务器中的多个数据库,则可以使用usedb

const userDb = mongoose.connection.useDb('userDB');
const postsDb = mongoose.connection.useDb('postsDB');

只有在有充分理由的情况下才这样做不过,更标准的方法是在同一数据库中使用多个集合。

如果数据库位于不同的服务器中,则需要完全使用不同的连接池,而这是mongoose不支持的。您可以使用标准的mongodb驱动程序,也可以将应用程序拆分为不同的服务,每个服务都有自己的mongoose实例和自己的连接。但是,这在同一个express应用程序中是非常不寻常的。

 类似资料:
  • 我在express中使用mongodb本机驱动程序。js应用程序。数据库中大约有6个集合,因此我创建了6个js文件,每个文件都有一个集合作为javascript对象(例如),原型函数处理这些集合上的所有操作。我觉得这是一个很好的建筑。 但我遇到的问题是如何连接到数据库?我应该在每个文件中创建一个连接并使用它们吗?我认为这太过分了,因为mongodb本机驱动程序中的connect会创建一个连接池,而

  • 问题内容: 我有一个Java应用程序,它在MongoDB上执行一些聚合,但是有时它会挂起并抛出SocketTimeout异常。异常发生后,应用程序将正常运行(稍等片刻,然后它可能会再次引发异常)。 我刚刚发现这种解释似乎是可能的原因,但不确定。 我启动MongoClient并保持与数据库的连接打开。我不确定这是否可能是一个问题,我应该每次都获取数据库,然后让数据库进行垃圾回收(并关闭连接)。 另一

  • 据我所知,每个应用程序只需要一个MongoClient实例,因此为了方便起见,我使用此方法扩展了HttpServlet: 当我运行这个代码时,它工作得很好,我连接并做我需要做的工作,但每次我运行这个特定的Servlet时,它似乎都会不断地打开与mongoDB的新连接: 在页面中我正在这样做: 然后运行一个简单的查询。有人能解释为什么我有这么多新的联系吗?我也见过这个蒙哥。霍尔德班。这是我现在做的事

  • 有时,当使用这些mehtods之一时,我会重复出现此错误: 注意,我使用的是Heroku数据库(ClearDB,MySQL),当我使用本地数据库时,我不能重现这个错误。

  • 我需要通过WebSocket检索数据,然后在我的RCP应用程序中以表格视图显示它们。我的第一个想法是在我的部分代码中打开连接(假设我有一个名为的类),代码如下 然而,这绝对行不通,因为WebsocketUtil。openConnection()将阻止以下语句。在我查看了vogella网站上的教程后,我仍然感到困惑,似乎没有适合我需要的示例代码。那么,当我的RCP应用程序启动时,如何启动一个线程来打

  • 我想运行节点。js与asp。net mvc用于执行套接字。io操作。 我已经成功地包含了节点。js在asp。net mvc,如本文所述 我的问题是如何在ASP.NET MVC中运行express.js, 我已经在Global.asax.cs文件中执行了url重写,如< br > void Application_BeginRequest(对象发送方,EventArgs e) { //获取当前路径