我想从节点a开始返回大小为0..4的路径。但我想只返回最长的路径(跳过子路径)。对于图表:
a -> b - > c
|
| -> d
我只想回复a -> b -> c
和a -> d
但不回复a
也不回复a -> b
修改
这意味着如果路径长于4,我仍然需要大小为0..4的最长路径。所以:
a -> b -> c -> d -> e -> f
我想获得a -> b -> c -> d -> e
答案 0 :(得分:3)
获取长度为4的所有路径,从根节点开始,以叶节点结束或长度为4:
/items/
答案 1 :(得分:2)
使用示例数据集重现:
CREATE (a:Node {name:"A"})-[:RELATION]->(b:Node {name:"B"})-[:RELATION]->(c:Node {name:"C"}),
(a)-[:RELATION]->(d:Node {name:"D"})
您可以通过这种方式限制返回路径WHERE
:
match path = (a)-[*0..4]->(b)
where not ()-->(a) and not (b)-->()
return path
输出将是:
╒═══════════════════════════════════════════════════════════╕
│"path" │
╞═══════════════════════════════════════════════════════════╡
│[{"name":"A"},{},{"name":"B"},{"name":"B"},{},{"name":"C"}]│
├───────────────────────────────────────────────────────────┤
│[{"name":"A"},{},{"name":"D"}] │
└───────────────────────────────────────────────────────────┘