RavenDB和递归包含

时间:2018-05-30 00:09:05

标签: c# ravendb ravendb4

我有一个结构

class Node {
    List<string> ChildrenIds;
    ...
}

我目前在RavenDB中存储和查找但仅包含结果只允许我在可能很多级别的树中包含一个级别。有没有办法告诉它递归查找从顶层引用的所有这些节点?

我知道索引可以递归使用但我不清楚如何最好地使用它来加载正确的文档,是否有可能以某种方式对索引属性进行包含?

1 个答案:

答案 0 :(得分:1)

是的,您在查询中使用JS支持,如下所示:

declare function recursiveInclude(n){
    for(var i = 0; i<n.ChildrenIds.length; i++)
        recursiveInclude(load(n.ChildrenIds[i]));
    return n;
}
from Node as n
select recursiveInclude(n)