流星服务器专用Web应用程序连接到多个数据库

亚伦

我正在使用此lib构建Meteor Web API ,该Web API的功能之一是它必须能够基于来自Meteor客户端的Web请求连接多个数据库中的任何一个。

我知道现在可以通过此SO答案(仅通过Meteor.js使用多个Mongodb数据库从一个仅服务器端流星应用程序连接到多个数据库

现在可以连接到远程/多个数据库:

var database = new MongoInternals.RemoteCollectionDriver("<mongo url>");
MyCollection = new Mongo.Collection("collection_name", { _driver: database });

但是,如果两个数据库中的集合名称相同,这行得通吗?数据库基本上是副本,当然具有不同的MONGO_URL和不同的数据。

例如:

(1)来自客户端的Web请求将进入Meteor Web API。该请求将包含指定数据库ID = 2的数据。我将查找该ID并将其与数据库URL匹配。我将连接到该数据库并输入集合名称“ People”,然后对该数据进行处理。

(2)来自不同客户端的另一个Web请求进入Meteor Web API。这次使用数据库ID = 4,Web应用程序将查找数据库并连接到另一个不同的URL,并提取相同的集合名称“人”,但是这次当然具有不同的数据(当然是因为这是一个不同的数据库)。

可以使用相同的集合名称吗?如果是这样,那将如何工作?另外,如果我同时有两个不同数据库的两个请求怎么办?

图表: 在此处输入图片说明

塞尔坎·杜鲁索伊(Serkan Durusoy)

您应该定义什么是“集合名称”。

因此,在这段代码中:

const database = new MongoInternals.RemoteCollectionDriver("<mongo url 1>");
const MyCollection = new Mongo.Collection("collection_name", { _driver: database });

const database2 = new MongoInternals.RemoteCollectionDriver("<mongo url 2>");
const MyCollection2 = new Mongo.Collection("collection_name", { _driver: database2 });

从您的“流星应用”的观点,MyCollection并且MyCollection2是两个不同的JavaScript常量,因此两个不同的“流星集合”。根据javascript的工作方式,它们的名称不能相同。

但是,由于它们连接到两个不同的数据库,并且不同的数据库完全不同(除非两个mongo url字符串相同),所以它们的“数据库集合”名称可以相同。它们仍然是两个不同数据库中的两个不同集合。

从数据库的角度来看,并发也不重要。他们可以响应并发数据库调用,因为它们是不同的数据库。但是,同样,您的javascript应用程序代码必须能够管理此并发并处理其结果和异常,因为javascript不是线程化的,而是事件化的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用jdk10两个容器 - 如何成功地从dockerized Tomee服务器上运行的应用程序连接到Dockerized DB2数据库/服务器?

如何在实时服务器上部署Spring Boot应用程序并使用mysql建立数据库连接

为连接到服务器应用程序的每个客户端打开一个新的数据库连接?

如何使用php将opencart应用程序连接到sql服务器数据库

具有多个数据库的共享服务器上的SaaS应用程序

如何使用NHibernate在单个应用程序中连接到多个数据库?

如何从无服务器应用程序安全地连接到AWS DynamoDB或其他AWS数据库

如何使用API将Flutter应用程序连接到本地sql服务器数据库?

Heroku上的数据库连接错误:将Web应用程序连接到Postgresql

从应用程序服务器连接到数据库服务器:(0x80131904):用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败

第一次在服务器数据库中部署代码时未连接到我的应用程序

在PHP中连接到不同服务器上的多个数据库

将HTML5应用程序连接到服务器上的数据库*安全*

IHS Web服务器连接到Websphere应用程序服务器

是否可以在Azure中设置可连接到多个本地数据库的Web应用程序?

使用数据库连接将代码部署到Azure Web时,Flask应用程序无法呈现,但是在本地服务器上运行良好

如何将我的应用程序与数据库服务器连接

流星android应用程序将无法连接到服务器

流星移动应用程序无法连接到服务器

通过VPN从Grails项目连接到远程服务器数据库时出现Grails运行应用程序错误

Java中没有应用程序服务器的数据库连接池

Maven 应用程序无法连接到数据库服务器

一个 Web 应用程序中的多个数据库连接 - java

应用程序运行时动态连接到服务器并创建数据库

如何将在本地机器上运行的数据库服务器作为服务连接到托管在关键云代工厂上的 Web 应用程序?

Elastic Beanstalk 应用程序无法连接到数据库,但服务器可以

使用 Wamp 将 SQL 服务器数据库连接到 PHP Web 应用程序

如何将现有的 nodejs 服务器应用程序连接到 Azure SQL 数据库

从heroku服务器上的node.js应用程序连接远程mysql数据库时出现ETIMEDOUT