2016-04-15 56 views
1

我刚刚开始使用mongoDB。mongodb:使用嵌套文档或单独的引用集合

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

现在我的问题是,我应该将它建模为用户集合,并将数据记录嵌入到每个用户文档中,或者将用户集合和数据记录集合从每个数据文档引用到用户文档?

回答

1

这主要取决于你要做的DB

我认为在你的数据库,你需要存储用户特定数据(姓名,地址,ECC)和“其他”的数据(查询您的'小数据记录')

如果查询要获取用户特定数据以及“其他”数据,则最好只使用用户集合并将“其他”数据嵌入到用户集合中。通过这种方式,您可以在一个查询中获取用户特定的数据和“其他”数据。

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

请记住,通常,不推荐在MongoDB中使用引用,除非你有很好的理由去做,所以我会去第一个解决方案

+0

因此,向子文档添加新记录不是问题?我每次都必须为整个文档加载整个文档吗? – Thomas

+0

是的,你可以更新和添加数据到你的子文档,并且你不需要为这个 – Moppo

+0

加载整个文档非常感谢。我也想将所有记录与用户数据一起。 – Thomas

1

这一切都取决于用例 - 数据类型,读取频率,数据访问模式等

就你而言,它看起来像“小数据记录”依赖于用户数据,而不是真正的独立数据。由于尺寸也很小,最好将数据嵌入到用户集合中。

相关问题