Neo4j路径只包含特定类型的节点

时间:2017-09-05 09:26:32

标签: neo4j cypher graph-databases

我有一个包含许多路径的图表,我希望单独返回这些路径 给出以下图表:

           B 
         /    \
 A   -  C  -   D
  \____________/

并且所有链接都是定向的,因此我们具有来自A-> C,A-> D,C-> D,C-> B,B-> D的边缘。 我想得到A-C-D,A-C-B-D和A-D作为单独的结果。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

当然,您可以使用variable-length pattern matching

假设当前节点的类型为:MyNode,并且我们使用属性name作为节点名称,并且有一个索引:MyNode(name)用于快速查找:< / p>

MATCH p = (:MyNode{name:'A'})-[*]->(end)
WHERE NOT exists((end)-->())
RETURN p

WHERE确保您只获取到没有传出关系的终端节点的路径。

如果您只想要返回路径的节点而不是完整路径,请改用RETURN nodes(p)