我读到嵌入式(embedding)是从性能角度考虑更好的选择:“如果性能是一个问题,就使用嵌入式(embed)。”(http://www.mongodb.org/display/DOCS/Schema+Design),并且大多数指南都建议应该使用嵌入式来包含数据。
然而,我不确定这是否正确。假设我们有两个对象:Blog和Post。Blog 包含多篇 Post。
现在将所有的 Post 都嵌入到 Blog 中会有以下问题:
(注意:请不要考虑文档大小限制,假设每个 Blog 最多有1000篇 Post)
然而,我不确定这是否正确。假设我们有两个对象:Blog和Post。Blog 包含多篇 Post。
现在将所有的 Post 都嵌入到 Blog 中会有以下问题:
- 分页。由于无法过滤嵌入的对象,我们将始终获取所有 Post,并需要在应用程序中进行筛选。
- 过滤。与之前相同,当搜索 Post 内的单词时,将无法从 MongoDB 中过滤嵌入的集合。
- 插入。我认为向集合中插入数据比向嵌入的对象中插入数据快。这是正确的吗?有没有相关的资料可以查阅?
- 更新。与之前相同,对于内联更新较小文档(Post)中的字段,可能比对于 Blog 的大文档中嵌入 Post 进行内联更新更快。这是正确的吗?
(注意:请不要考虑文档大小限制,假设每个 Blog 最多有1000篇 Post)