从性能的角度看,嵌入效果更好: “如果性能是一个问题,嵌入”。 (http://www.mongodb.org/display/DOCS/Schema+Design)和大多数指南总是说包含应嵌入。从性能角度来看,嵌入MongoDB与参考相比
但是我不确定是这种情况。假设我们有两个对象:Blog和Post。博客包含帖子。
现在正在嵌入博客将有以下问题的所有帖子:
- 寻呼。由于无法过滤嵌入对象,因此我们将始终获取所有帖子,并需要在应用程序中将其过滤掉。
- Filtering。与之前一样,当在帖子内搜索单词时,将无法从MongoDB过滤嵌入的收藏集。
- 插入。我认为插入到集合比插入到嵌入对象更快。它是否正确?这是写在任何地方?
- 更新。和以前一样,小文档(Post)内嵌入更新字段可能会更快,然后内联更新Blog的大文档内的帖子。它是否正确?
考虑到上述所有情况,我会选择在引用Blog的单独集合中发布帖子。这是正确的结论吗?
(注:请不要因素文件大小限制在响应中,假设每个博客都会有最多1000个)
谢谢你的详细解答。 – mbdev 2011-06-15 06:33:40
@mbdev:不客气。 – 2011-06-15 07:14:46
你确定#2是否有一个帖子与标题相匹配?我想它会返回包含“Mongodb!”帖子的博客标题。然后切片只会过滤第一篇文章。所以你会得到不正确的帖子 – mbdev 2011-06-16 15:02:23