【问题标题】:Cayley : How to put the limit/depth to show the graph hierarchy in cayley?Cayley:如何设置限制/深度以在 cayley 中显示图形层次结构?
【发布时间】:2017-11-08 12:58:32
【问题描述】:

我需要帮助来限制节点以在 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 级。

【问题讨论】:

    标签: cayley


    【解决方案1】:

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

    g.V("B").FollowRecursive(path,2 )
    

    请不要在 foreach 中开始一条不知道外部函数最大深度的新路径。

    有关此用例的更详细讨论可以在 Cayley 官方论坛上的“交叉帖子”中找到: https://discourse.cayley.io/t/cayley-0-7-0-depth-function-issue/1066

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      相关资源
      最近更新 更多