假设我有以下图表:

忽略图的3->2和4->3之间的关系,使其保持树状结构。
注意:在我的例子中,这种类型的关系(4->3,3->4)不存在。
是否可以使用Cypher返回图中所有现有路径的“列表”?
上图的示例:
结果:1-2,1-3,1-3-4
最好是深度优先的.
发布于 2017-01-16 12:27:45
这不是Cypher的主要用例,所以它的性能不会很好,但这是可能的。
示例数据集:
CREATE
(n1:Node {name: 'n1'}),
(n2:Node {name: 'n2'}),
(n3:Node {name: 'n3'}),
(n4:Node {name: 'n4'}),
(n1)-[:REL]->(n2),
(n1)-[:REL]->(n3),
(n3)-[:REL]->(n4)使用路径变量查询
MATCH p=(a)-[*]->(b) RETURN p结果:
╒════════════════════════════════════════════╕
│p │
╞════════════════════════════════════════════╡
│[{name: n1}, {}, {name: n2}] │
├────────────────────────────────────────────┤
│[{name: n1}, {}, {name: n3}] │
├────────────────────────────────────────────┤
│[{name: n3}, {}, {name: n4}] │
├────────────────────────────────────────────┤
│[{name: n1}, {}, {name: n3}, {}, {name: n4}]│
└────────────────────────────────────────────┘由于Cypher是一种声明性语言,因此没有任何选项可以强制执行广度/深度优先遍历。但是,为此目的,Neo4j提供了一个您可能认为有用的遍历框架。
https://stackoverflow.com/questions/41672064
复制相似问题