RavenDb - 递归查询/索引,用于分层文档
我知道这可能是一个有点愚蠢的问题,可能会这样做 错了,但我会以任何方式询问。
假设我有一组层次结构文档。 它们包含的关于其在层次结构中的位置的唯一信息 是他们的家长 ID。如果它为空,我们就到达了顶部。
吸引父母和孩子是最容易的部分。
我想做的是查询所有的后代和祖先。 我想我必须分开回答这个问题。 1)让祖先得到一份文件是他们制作一个文件的任何方法 递归查询?获取父级parent,直到parent为空。
2)他们有什么方法可以制作索引/预测,我们可以在其中绘制地图 文档的祖先 id。然后查询祖先id或者 文档编号?因为如果我能得到那个索引就很容易说 通过祖先 id 获取所有文档,文档 id 等于 我想从中获取孩子的 documentid。
可以说我有这个结构。
文档1
文档1.1
文档1.1.1
文档1.1.2
文档1.2
文档 1.2.1
索引
我想要一个类似于DocumentID
的 1.1
1.1.1
1.1.1
1.1.2
1.1.2
1.2
1.2.1
1.2.1
祖先ID 1
1
1.1
1
1.1
1
1.2
I know this might be a bit of a silly question, probably doing it
wrong but I'll ask any way.
Lets say I have a set of Hierarchical Documents.
The only information they contain about their place in the hierarchy
is their parent id. If its null we have reached the top.
Getting parents and children are the easy part.
What I want to do is query for all the descendants and ancestors.
I think I have to parts to this question.
1) To get the ancestors to a document is their any way to make a
recursive query? Get the parent parent until parent is null.
2) Is their any way to make a index/projections where we can map the
ancestor ids to a document. And then query the ancestor id or the
document id? Because if I could get that index it would be easy to say
get all documents by ancestor id for document id equal to the
documentid i want to get the children from.
Lets say I have this structure.
Document 1
Document 1.1
Document 1.1.1
Document 1.1.2
Document 1.2
Document 1.2.1
I want a index looking somthing like this
DocumentID
1.1
1.1.1
1.1.1
1.1.2
1.1.2
1.2
1.2.1
1.2.1
AncestorID
1
1
1.1
1
1.1
1
1.2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
RavenDB 邮件列表对此进行了详细讨论:https://groups.google。 com/d/topic/ravendb/ptBYL9A5PA8/discussion
我相信,所选择的解决方案涉及将完整的祖先放入每个文档中。
This was discussed in detail on the RavenDB mailing list: https://groups.google.com/d/topic/ravendb/ptBYL9A5PA8/discussion
The chosen solution, I believe, involved putting the full ancestry in each document.