首页 > 解决方案 > MongoDB多个集合或多个数据库

问题描述

我们正在使用 .net Core 和 node.js 微服务,其中一些与 mongoDB 一起使用。

目前我们得到以下数据库结构:

每个客户都有自己的数据库。因此,如果我们为 Invoices 提供微服务,每个新客户都会为该微服务添加 1 个新数据库。

Invoice_customerA
Invoice_customerB 
etc...

虽然每个这样的数据库中的集合保持不变(通常我们在每个数据库中有 1-3 个集合)

在逻辑方面 - 我们在运行时通过请求输入来选择正确的数据库。

我现在正在考虑对其进行一些更改,以开始对集合进行分离:

因此,如果我们以这次之前的相同示例为例,此 Invoice Service 将只有 1 个 DB,

Invoice_allCustomers

并且其中的每个客户将有 1 个新集合(如果此服务有更多集合,则更多)。

collection_customerA
collection_customerB

我想了解的是,性能方面是否有任何差异?或者它主要是一种“化妆品”变化?或者也许还有其他一些考虑?

PS 如果更改主要是装饰性的,我认为新的解决方案对我们来说更好,因为我们通常每个微服务只有 1-2 个集合。当数据库显着减少时,导航会更容易。

标签: mongodbcollectionsmicroservices

解决方案


据我所知,在微服务中,每个服务都应该有自己的数据库。如果它不是一项不同的服务,那么您可以使用其中包含不同集合的一个数据库。它更多的是外观上的变化,但我也应该警告你,mongodb 仍然有它的限制,你可以在这里找到。这实际上取决于将存储和检索的数据量。


推荐阅读