我正在尝试使用 CouchDB 实现一种以 Hacker News 提供的方式显示评论的基本方式。不仅按层次排序,而且树的每一级都应按“点”变量排序。
我的想法是,我想要一个视图以我除外的顺序返回它,而不是进行很多 Ajax 调用,例如,检索它们并使它们看起来像是正确排序的。
这是我到目前为止得到的:
- 每个文档都是一个“评论”。
- 每个评论都有一个属性
path
,它是一个包含其所有父项的有序列表。
例如,假设我有 4 条评论(带有 _id 、1
和2
)。评论是的孩子,评论是的孩子,评论也是的孩子。这就是数据的样子:3
4
2
1
3
2
4
1
{ _id: 1, path: ["1"] },
{ _id: 2, path: ["1", "2"] },
{ _id: 3, path: ["1", "2", "3"] }
{ _id: 4, path: ["1", "4"] }
这对于层次结构非常有效。一个简单view
的东西已经按照我想要的方式返回。
当我想独立订购树的每个“级别”时,问题就来了。因此,例如文档2
和4
属于同一分支,但在该级别上按其 ID 排序。相反,我希望它们根据我想要添加到路径的“点”变量进行排序 - 但似乎无法理解我可以在哪里添加这个变量以使其按照我想要的方式工作。
有没有办法做到这一点?考虑“点”变量会随时间变化。