我正在构建一个多租户MongoDb系统。如何根据请求在Db之间切换。我正在使用MongoDb与Node js使用MongoDb本机驱动程序。
答案 0 :(得分:6)
您的MongoClient对象有一个方法.db(dbname)
,它使用相同的连接返回对不同数据库对象的引用。
但您可能想要考虑将所有tennants的数据存储在单个数据库的相同集合中,并将字段tennant
添加到每个查询中包含的每个文档中。当您拥有单个集合甚至每个租户的单个数据库时,数据库管理员的维护工作会随着您拥有的租户数量线性增加,因为需要对每个租户执行许多维护和配置任务(例如配置分片)分别收集每个数据库。