2

在问题和评论的场景中……评论本身并不存在,而是作为嵌套元素存储在其父问题文档中……这些评论当然可以建立成百上千个条目……当我加载一个问题时,我不会招致性能损失吗?加载操作不会同时加载所有成百上千条评论吗?我可以(应该)运行什么查询来加载问题,然后只加载前 10 条评论,以便能够根据需要加载另一个评论“页面”?

或者 RavenDB 是否应用延迟加载,因为在我访问 Question 实例的 Comments 属性之前它根本不会加载 Comments?即便如此......我可以控制它“懒惰”以分页方式加载评论吗?

另外,如何在不首先加载问题(及其所有评论)的情况下向问题添加新评论?

4

1 回答 1

2

当您加载文档时,您通常希望加载所有内容(即博客中的详细信息页面)。

对于索引页面(列出所有博客文章),您可以创建一个执行map/reduce的索引。

至于保存新评论,您可能想问自己多久这样做一次?在大多数网站中,读取比写入更频繁地使用。因此,在查看整个图片时,加载整个博客的性能损失并不那么相关。

但是,如果您确实希望有很多评论,您可能希望稍后重新设计您的应用程序以使评论成为根聚合。但在被证明是性能问题之前不要这样做。(由于 RavenDB 的无模式特性,移动评论也很容易)。

于 2013-03-05T14:04:42.423 回答