在 Couchbase 中查询嵌套文档

Querying Nested Documents in Couchbase

我正在使用 Couchbase 编写一个类似 Reddit 的评论库。对于每条评论,我都会存储其 parentId 及其 childrenIds 的列表。网页上的每条 top-level 条评论都会将其 parentId 作为 null

我想高效地检索评论块。我所说的评论块是指 top-level 评论及其所有 children 评论。因此,第一步可以是编写一个 map 函数,该函数发出所有 top-level 评论的 ids

获得根后如何获取整棵树。一种非常天真的方法是找到 children,并递归查询它们。但这违背了这个项目不使用关系数据库的目的(因为我正在处理高度嵌套的数据,而关系数据库在存储它们方面很糟糕)。

有人可以指导我吗?

好的,每个顶级评论下面都有一棵子评论树。我认为在大多数情况下,您可以安全地将整个子评论树放在顶级评论的文档中。文档大小的默认限制是 20 MB,这对于文本来说实在是太大了。

接下来的问题是如何处理激发大量子评论的评论。我建议您在发生这种情况时开始将部分子评论树溢出到其他文档,因此严格来说可以有一个子评论树树,尽管通常您只需要一个文档。设计一些东西,让这些附属文档只在需要时获取,你永远不必获取整个子评论树。