我在ArangoDB中有一个图,其根节点是' X'。现在" a,b,c,d,e,f"是' X'的兄弟姐妹?直接或盛大的兄弟姐妹。现在来自给定的兄弟姐妹节点" a,b,c,d,e或f"我想进入节点' X'。是否有任何通用AQL查询可以直接遍历任何图的根节点?
答案 0 :(得分:3)
为了提供一个确切的例子,我需要了解更多,但这是几种解决方案之一。
假设节点通过" child"连接。边和边的方向从父到子。您将遍历树或SELECT
INBOUND
如果您知道root的最大跳数,请将50更改为该值。
此语句将返回从起始节点到子节点的所有路径和中间路径到头节点。要仅返回头节点的路径,您必须过滤掉中间路径。这可以通过检查来确定没有父顶点。
FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child RETURN p.vertices
将过滤掉所有不以根顶点结束的路径。
答案 1 :(得分:1)
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)
答案 2 :(得分:0)
我遇到了同样的问题,但是以上内容已经过时了:
我做了以下事情:
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)