在Neo4j中递归匹配子树

时间:2015-09-12 12:39:39

标签: neo4j cypher match subtree nosql

我使用的是Neo4j,我认为自己很新手,而且我真的不明白如何选择图表的子树。我使用shortestPathallShortestPaths找到了解决方案,但这与使用变量及其所有子项选择整个子树的方法并不完全相同。

我想做的是例如匹配MATCH (n {name: "Sovrum"})-[r:CHILDOF]->(child) return n, child,但这只给了我直接相关的节点。 enter image description here

相反,我想选择整个子树。 enter image description here

有没有什么好方法可以做到这一点,还是我错过了一些关于工作原理的重要观点?

1 个答案:

答案 0 :(得分:1)

使用可变长度路径非常容易,你从根开始告诉Cypher一直向下匹配CHILD_OF,直到它没有更进一步。

请确保在查询中使用标签,以允许Neo4j(带索引)快速找到您的起点。

您还可以指定与路径匹配的模式并返回该路径

MATCH path = (n:Node {name: "Sovrum"})-[:CHILDOF*]->(child)
RETURN path