1

我正在创建一个平台,客户(用户)来自不同的组织。因此,我想根据他们所属的组织将他们的数据完全分开。您如何建议将此类数据存储在 mongo db 中?在哪个级别?

4

2 回答 2

3

您是出于安全原因(即合规性或法规)还是仅仅为了管理/易用性而将数据分开?

如果是前者,我至少会使用单独的数据库,如果不是单独的 MongoDB 实例的话。单独的实例使您能够通过类似的方式在 IP 级别执行隔离,iptables以便您可以将不同的实例绑定到不同的 IP 范围,代表不同的组织假设他们将访问数据。

如果是后者,我仍然会使用单独的数据库,因为它使您能够在数据库级别拥有不同的用户,并且从版本 2.2开始,并发将在数据库级别(因此没有共享写锁,因为例如,如果您在集合级别将其拆分出来,您将拥有)。

作为仅供参考,这里有一些关于 MongoDB 中模式设计的附加信息 -

于 2012-08-14T15:46:55.823 回答
0

您可以为每个组织创建一个文档,并将用户的详细信息放入根文档内的子文档中。

如果整体用户的配置文件太大以至于不适合 MongoDB 文档大小 (16 mg),那么您可以使用不同的方法,为每个用户创建一个文档并添加一个引用该组织的字段。

于 2012-08-14T10:12:26.430 回答