在Neo4j中递归地匹配子树

3
我正在使用Neo4j,我认为自己是个初学者,我不太明白如何选择我的图的子树。我已经找到了使用shortestPathallShortestPaths的解决方案,但这并不像通过变量选择整个子树及其所有子节点那样简单。
我想做的是例如匹配MATCH (n {name: "Sovrum"})-[r:CHILDOF]->(child) return n, child,但这只给我直接相关的节点。enter image description here 相反,我想选择整个子树。 enter image description here 有没有好的方法来实现这一点,或者我是否忽略了一些重要的东西?
1个回答

3

使用可变长度路径并不难,您可以从根开始告诉Cypher一直匹配CHILD_OF,直到无法再匹配为止。

请确保在查询中使用标签以便Neo4j(带有索引)能够快速找到您的起点。

您还可以将匹配模式分配给路径并返回该路径。

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

好的,这个可以工作。但是我不太明白星号在关系中的作用是什么? - Victor Axelsson
星号表示可变长度路径,详见:http://neo4j.com/docs/stable/introduction-pattern.html#_variable_length - Michael Hunger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接