0

假设我有两个集合,帖子和评论。

post = { _id: 1,
         language: 'en',
         title: ...,
         author: ... }

comment = { _id: 2345,
            parent: 1,
            title: ...,
            author: ... }

除了查找所有评论,然后查询其父属性以找出语言之外,还有其他方法可以找到其父语言为“en”的所有文档(评论)吗?

如果没有,有没有办法以不同的方式呈现文档以使这样的查询更容易执行?(在这种情况下,我为评论制作了一个不同的集合,而不是每个帖子一个文档,因为在我看来,获取一条评论比检索整个文档并过滤它更容易,而且在我看来更有效)。

4

1 回答 1

1

首先,没有捷径可以做你想做的事。所以你的第一个问题的答案是否定的。

对于 NoSQL 数据库,规范化不是很重要。在这种情况下,您想根据语言代码查询评论,所以我只需将语言代码也添加到评论中。您知道为哪个帖子添加评论应用程序端,因此您可以根据需要简单地存储帖子的语言。

至于您的架构;如果您定期显示单个评论,则为每个评论创建一个文档可能是您的最佳解决方案。在大多数其他情况下,您总是至少显示大量评论,在这种情况下,通常最好为每个文档收集一组评论。每个评论页面说一个文档。也可以进行非常快速的分页。如果您不希望每个帖子有很多评论,您可以嵌入它们。

于 2011-08-10T15:07:09.393 回答