如何获取根节点';ArangoDB中图的s键?

如何获取根节点';ArangoDB中图的s键?,arangodb,arangojs,Arangodb,Arangojs,我在ArangoDB中有一个根节点为“X”的图。现在“a、b、c、d、e、f”是“X”直系或外祖父母的兄弟姐妹。现在,从给定的同级节点“a、b、c、d、e或f”,我想到达节点“X”。是否有任何常规AQL查询可以直接遍历到任何图的根节点?为了提供一个确切的示例,我需要了解更多,但这是几种解决方案之一 假设节点由“子”边连接,边的方向从父节点到子节点。您可以向上或入站 FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child

我在ArangoDB中有一个根节点为“X”的图。现在“a、b、c、d、e、f”是“X”直系或外祖父母的兄弟姐妹。现在,从给定的同级节点“a、b、c、d、e或f”,我想到达节点“X”。是否有任何常规AQL查询可以直接遍历到任何图的根节点?

为了提供一个确切的示例,我需要了解更多,但这是几种解决方案之一

假设节点由“子”边连接,边的方向从父节点到子节点。您可以向上或
入站

FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child RETURN p.vertices
如果知道根的最大跃点数,请将50更改为该值

此语句将返回从起始节点通过子链接到头节点的所有路径和中间路径。要仅返回头节点的路径,必须过滤掉中间路径。这可以通过检查是否没有父顶点来完成

FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child 
  FILTER LENGTH(EDGES(child,v._id,'inbound'))==0 RETURN p.vertices

这将过滤掉所有不以根顶点结束的路径。

为了提供一个确切的示例,我需要了解更多,但这是几种解决方案之一

假设节点由“子”边连接,边的方向从父节点到子节点。您可以向上或
入站

FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child RETURN p.vertices
如果知道根的最大跃点数,请将50更改为该值

此语句将返回从起始节点通过子链接到头节点的所有路径和中间路径。要仅返回头节点的路径,必须过滤掉中间路径。这可以通过检查是否没有父顶点来完成

FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child 
  FILTER LENGTH(EDGES(child,v._id,'inbound'))==0 RETURN p.vertices

这将过滤掉所有不以根顶点结束的路径。

我遇到了这个问题,因为我有同样的问题,但上面的问题已经过时了:

我做了以下工作:

let ref_items = (for s in skills
return s._id)


let c = (for item in ref_skills
for sk in skill_skill
    filter item == sk._to

    return item)
return MINUS(ref_skills, c)

我遇到了这个问题,因为我有同样的问题,但上面的内容已经过时了:

我做了以下工作:

let ref_items = (for s in skills
return s._id)


let c = (for item in ref_skills
for sk in skill_skill
    filter item == sk._to

    return item)
return MINUS(ref_skills, c)

RHSMan的回答对我有帮助,但这里有点干净

LET ref_people = (
    FOR p IN people RETURN p._id
)
LET l = (
     FOR id IN ref_people 
         FOR link IN links FILTER id == link._from RETURN id
)

RETURN MINUS(ref_people, l)

RHSMan的回答对我有帮助,但这里有点干净

LET ref_people = (
    FOR p IN people RETURN p._id
)
LET l = (
     FOR id IN ref_people 
         FOR link IN links FILTER id == link._from RETURN id
)

RETURN MINUS(ref_people, l)

我试着用同样的方法,比如为跃点设置最大值,但我不知道要到达节点我应该做多少跃点……现在有什么聪明的方法可以做到这一点,不,只是设置一个较大的值。只要确保提供了路径过滤,以在到达适当的目的地时停止遍历。由于这些节点位于树的顶端,因此没有父节点,因此无论如何它都应该停止。我尝试使用相同的方法,例如为跃点设置最大值,但我不知道要到达节点应该执行多少跃点……此时是否有任何聪明的方法来执行此操作,不,只需输入一个较大的值。只要确保提供了路径过滤,以在到达适当的目的地时停止遍历。因为它们在树的顶端,因此没有父母,所以应该停止。答案对你有用吗?如果是,您能将其标记为“已接受”吗?如果没有,缺少什么?答案对你有用吗?如果是,您能将其标记为“已接受”吗?如果没有,缺少什么?