2015-11-01 63 views
0

在流星(服务器端),是否可以创建多个数据库的集合?流星 - 连接多个数据库的集合

假设我想连接两个不同的数据库并将它们的集合挂载在流星中。我关心的是两个数据库中同名的集合(例如“用户”)。

有没有办法让2个集合名为“用户”,但来自2个不同的数据库(连接)?

谢谢!

编辑:

另一个问题并没有解决我的主要问题:如果我想安装(连接)两个集合命名的2级不同的数据库“用户”(例如)。

流星说:

错误:名为“/用户/插入”的方法已经被定义

+0

应该可以在Meteor创建Collection实例时提供连接。尽管如此,发布可能会非常棘手。 – MasterAM

+0

@Radko我相信每个集合只能使用一个数据库 - 所以在多个数据库中拥有相同集合的情况下,您需要选择要连接的数据库。 –

+0

@David Weldon谢谢,但是没有办法破解它吗? – Radko

回答

2

我重新打开的问题,但没有简单的答案。 mongo驱动程序假设每个集合有一个连接。顺便说一下,这是一个合理的假设 - 如果你写了一个数据库,哪个数据库会被更新?

这里有一些方法,你可以解决这一限制没有实现自己的驱动程序:

  1. 声明多个集合(Users1Users2),其中每个集合可以访问数据库实例之一。从技术上讲,这将工作得很好,但在你的代码中可能并不容易。

  2. 使用外部进程将一个集合的内容从db1定期复制到db2。这使您可以使用单个集合,但如果某些文档是从外部应用程序写入的,则可能会变得复杂。

  3. 只能使用methods来访问数据,而不是将其发布到客户端。您失去了在客户端上拥有集合语义的能力,但您可以直接控制数据库的使用方式。有关如何直接使用RemoteCollectionDriver的实例的一些示例,请参阅this question的答案。

+0

嗨,谢谢你。我们实际上使用了解决方案3.我们使用方法并根据需要从任何连接/数据库中提取数据。 – Radko

+0

很酷。我很高兴你有工作。 :) –