gpt4 book ai didi

javascript - 具有多个 Mongo DB 的 Meteor

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:48 24 4
gpt4 key购买 nike

我刚刚开始使用 Meteor 和 MongoDB。我想知道是否有办法同时使用两个或多个数据库。这些数据库必须在运行时生成。

这个想法是我有一些用户组绝对不允许访问其他用户组的数据。如果还有其他方法请告诉我。

最佳答案

好吧,我已经做到了......很久以前,但我仍然想在这里发布答案。

你需要的是这样的:

dbCustomer = new MongoInternals.RemoteCollectionDriver(
CUSTOMER_DB_URL + customerId
);

通过这种方式,您可以创建在创建新集合时使用的自定义驱动程序:

Products['procucts' + customerId] = new Meteor.Collection(
'products' + customerId,
{
_driver: dbCustomer,
idGeneration: 'STRING'
}
);

那么为什么我要这样做 Products['productus' + customerId] 而不是简单地 Products 呢?

这里你必须注意客户端上的MinoMongo db。客户端不关心您使用哪个驱动程序(仅在服务器端使用驱动程序)。想象一下用户注销并登录到另一个客户的情况。现在他正在使用不同的数据库,但仅在服务器上。在客户端上,您仍然只有 1 个数据库和 1 个名为 Products 的集合。知道什么?确切地!您既有来自老客户的数据,也有来自新客户的数据。

这不是数据安全问题,但您也会看到这两个数据(这显然是错误的)。为了防止这种情况,您需要在客户端上有 2 个单独的集合。要实现此目的,请将 customerId 添加到集合中。

就是这样。

关于javascript - 具有多个 Mongo DB 的 Meteor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com