Cayley:如何设置限制/深度以在Cayley中显示图形层次?

Cayley:如何设置限制/深度以在Cayley中显示图形层次?,cayley,Cayley,我需要帮助限制节点以显示cayley中的图形层次结构。就像在OrientDB中一样,我们有一个深度函数来将层次结构限制在上至下同一级别的任何级别 示例:我有以下层次结构: A DependsOn B B RunsOn C C DependsOn D D ConnectedTo E 现在,对于上面的示例,我编写了一个下面的查询来显示图形层次结构 var path = g.M().Both(); g.V("B").FollowRecursive(path).

我需要帮助限制节点以显示cayley中的图形层次结构。就像在OrientDB中一样,我们有一个深度函数来将层次结构限制在上至下同一级别的任何级别

示例:我有以下层次结构:

A DependsOn B    
B RunsOn C    
C DependsOn D    
D ConnectedTo E    
现在,对于上面的示例,我编写了一个下面的查询来显示图形层次结构

var path = g.M().Both();    
g.V("B").FollowRecursive(path).ForEach( function(v) {  
    g.V(v.id).OutPredicates().ForEach( function(r){    
        g.V(v.id).Out().ForEach(function(t){    
            var node = {    
                source: v.id,    
                relation : r.id    
                target: t.id    
            }    
            g.Emit(node)
        })
    }
})

因此,当我将B传递给查询时,它将返回完整的层次结构,但我只希望A,B&C节点显示B中的1级层次结构,对于2级层次结构,我希望显示A,B,C&D,因为它应该显示从B节点向上2级和向下2级。

您可以通过将最大深度作为第二个参数传递给以下递归函数来限制深度:

g.V("B").FollowRecursive(path,2 )
请不要在foreach中启动新路径,因为它不知道外部函数中的最大深度

关于这个用例的更详细讨论可以在官方Cayley论坛的“交叉帖子”上找到:

您可以通过将最大深度作为第二个参数传递给以下递归函数来限制深度:

g.V("B").FollowRecursive(path,2 )
请不要在foreach中启动新路径,因为它不知道外部函数中的最大深度

关于这个用例的更详细讨论可以在官方Cayley论坛的“交叉帖子”上找到: