【发布时间】:2018-07-04 13:22:10
【问题描述】:
我阅读了很多关于嵌入 MongoDB 的内容,但我仍然不知道何时使用它。我想到了一些场景:
我有一个名为 UserGroups 的集合,其中包含以下字段:
- _id
- 姓名
现在我想向用户集合添加一个用户:
我应该在 Users 集合中有一个 groupName 字段,并在 UserGroups 集合得到更新时更新它。
我应该在用户集合中添加 groupId 字段,并在需要 UserGroups.name 时执行连接。
我应该将用户文档作为嵌入文档添加到 UserGroups 集合中。
或者我应该将 userGroup 文档添加为用户集合中的嵌入文档。不过,我认为我不应该这样做。
我应该使用哪个选项?
【问题讨论】:
-
没有客观正确的答案。您必须考虑查询内容的方式,以及嵌入文档在存储在数组中时最终可能超过文档大小(或创建一个非常大、笨重的文档)这一事实。
-
@DavidMakogon,所以我应该始终使用引用的集合?
-
MongoDB 被设计为无模式,目的是在这方面保持灵活性。通常,如果您有一对多的关系并且您不打算以后自己更改子对象,只需将它们作为存储对象的嵌入属性。在这种特殊情况下,我个人会使用单独的用户组集合,但这只是个人偏好和您在不久的将来可能遇到的潜在问题的问题。
标签: mongodb