获取所有路径neo4J Cypher

aze*_*lix 0 neo4j cypher

我正在使用neo4j来开发概念验证,我希望获得从我的根节点到叶子的所有路径的所有节点ID,例如使用id:

ROOT1-->N1--->SN2--->L1
ROOT1-->N2--->SN3--->L3
Run Code Online (Sandbox Code Playgroud)

我想在结果查询中得到的是: ROO1,N1,SN2 and ROOT1,N2,SN3

我是cypher的新手,我很难得到这个结果,任何帮助都会有用.

cyb*_*sam 5

我假设ID你提到的是一个id财产.

要获取每个完整路径中的节点ID的集合(叶节点除外):

MATCH p=(root {id: 'ROOT1'})-[*]->(leaf)
WHERE NOT (leaf)-->()
RETURN EXTRACT(x IN NODES(p)[..-1] | x.id) AS result;
Run Code Online (Sandbox Code Playgroud)

以下是一个示例结果:

+----------------------+
| result               |
+----------------------+
| ["ROOT1","N1","SN2"] |
| ["ROOT1","N2","SN3"] |
+----------------------+
Run Code Online (Sandbox Code Playgroud)

  • 您可以将切片简化为"nodes(p)[... - 1]",从末尾开始计算负索引. (2认同)