繁体   English   中英

如何在 ArangoDB 中获取图的根节点的键?

[英]How to get the root node's key of a graph in ArangoDB?

我在 ArangoDB 中有一个图,其根节点是“X”。 现在“a、b、c、d、e、f”是“X”直系兄弟姐妹或曾孙兄弟姐妹的兄弟姐妹。 现在从给定的兄弟节点“a、b、c、d、e 或 f”我想到达节点“X”。 是否有任何通用 AQL 查询可以直接遍历任何图的根节点?

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

假设节点由“子”边连接,边的方向从父到子。 你会遍历树向上或INBOUND

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

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

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)

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

我做了以下事情:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM