mongodb:使用嵌套文档或带引用的单独集合

时间:2016-04-15 10:02:39

标签: mongodb nosql

我刚开始使用mongoDB。

我必须存储用户数据。对于每个用户,每天都会添加一个小数据记录(不超过500字节)或更新一些(大部分时间不超过10个)。

现在我的问题是,我应该将其建模为具有嵌入在每个用户文档中的数据记录的用户集合,还是具有用户集合和数据记录集合以及从每个数据文档到用户文档的引用? / p>

2 个答案:

答案 0 :(得分:1)

这主要取决于你要在数据库上进行的查询

我假设您的数据库中需要存储用户特定数据(名称,地址,ecc。)和“其他”数据(您的“小数据记录”)

如果查询将获取用户特定数据以及“其他”数据,则最好只使用用户集合并将“其他”数据嵌入用户集合中。这样,您就可以在一个查询中获取用户特定数据和“其他”数据

如果查询只获取“其他”数据(从user_id的示例开始),并且您计划永远不需要用户特定数据和“其他”数据,则可以使用数据集合,将存储您的“其他”数据以及user_id(例如,更新数据)

请记住,通常不推荐使用mongodb中的引用,除非你有充分的理由这样做,所以我会选择第一个解决方案

答案 1 :(得分:1)

这完全取决于用例 - 如数据的性质,读取频率,数据访问模式等。

在您的情况下,它看起来像"小数据记录"取决于用户数据而不是真正的独立数据。由于大小也很小,因此将数据嵌入用户集合中会更好。