如何查找给定节点的所有路径

时间:2017-04-05 03:45:16

标签: neo4j cypher

我有一个这样的图表:

here is th graph

我想找到给定节点的所有路径。例如,如果给出节点“fcproc”,我希望得到一个路径(“itest-> bkqa-> fcproc”);如果给出节点“itest”,我希望得到2个路径(“itest-> bkqa-> fcproc”,“itest-> xmonitor”)。

如何编写密码?

1 个答案:

答案 0 :(得分:1)

假设您的目标节点具有标签Fooname属性值“fcproc”,那么这样的事情应该有效:

MATCH p=(root)-[*0..]->(:Foo {name: "fcproc"})-[*0..]->(leaf)
WHERE NOT ()-->(root) AND NOT (leaf)-->()
RETURN p;

可变长度关系模式[*0..]匹配0或更大的关系长度(其中0表示实际上没有关系,2“端点”是相同的节点)。这允许目标节点与rootleaf节点相同。