两个具有不同用例的类似数据类型是否应存储在同一个集合中?

时间:2011-03-23 21:54:16

标签: mongodb

我们有两个非常相似的数据类型,都是“用户”。第一个由活动用户组成,另一个用户自动提取并拉入我们的系统,并且具有比活动用户低得多的优先级(就访问速度而言)。

每个活跃用户都有可能引入至少1000个数据挖掘用户。我们将更频繁地使用活跃用户,性能是我们首要关注的问题。对于数据挖掘的用户,性能是次要的,但我们将存储大量的用户。

关于我们应如何处理此问题的任何意见?每个用户(活动和数据挖掘)的一个集合,或两个集合(一个用于活动,一个用于数据挖掘用户)?

1 个答案:

答案 0 :(得分:1)

Mongo非常适合在同一个集合中存储类似但不同的对象,只要您的应用可以处理它。

数据挖掘用户是活跃用户的子级吗?如果是这样,那么您可能希望将它们嵌入活动用户文档中。您不需要一直访问它们 - 如果您不需要整个文件,MongoDB允许您获取文档的一部分。

你会以不同的方式询问他们吗?如果是这样,您可能希望将它们分开,以便索引不会膨胀。

您是否会使用不会触及索引的查询来查询其中任何一个?如果是这样,你会想要将它们分开,这样你就不需要每次都进行完整的收集扫描。