【发布时间】:2016-05-19 21:54:14
【问题描述】:
通过“包含”给定一个图表,我有以下内容:
- D 包含 LibD
- C 包含 LibC 和 D
- B 包含 LibB 和 D
- A 包含 LibA、B 和 C
使用:
FOR v,e,p IN 1..50 INBOUND 'pmconfig/899018092734' pm_content RETURN p.vertices
我得到以下路径:
- A->B->LibB
- A->B->D->LibD
- A->B->D
- A->B
- A->LibA
- A->C->LibC
- A->C->D->LibD
- A->C->D
- A->C
我想过滤掉中间点,所以我得到:
- A->B->LibB
- A->B->D->LibD
- A->LibA
- A->C->LibC
- A->C->D->LibD
如果 LibX 元素是叶子,我可以添加一个过滤器,例如
FILTER LENGTH(EDGES(pm_content,v._id,'inbound'))==0
但假设我有一条路径:A->B->C->D->B
在这种情况下,我会过滤掉所有内容。我想要的是 A->B->C->D,因为当它识别到一个循环时,步行应该停止。
如何构造一个过滤器来去除中间点?具体来说,只有那些以叶节点或所有内容链接结尾的节点都指向已经遍历过的顶点。
【问题讨论】:
标签: arangodb