我正在尝试创建一个密码查询,该查询返回由给定范围的跃点(即1..5)连接的节点,其中这些跃点之间的所有关系共享相同的属性值,而不指定此属性。
所以我想做一些像
这样的事情MATCH (a {type: 'cin1'})-[rels:Next*1.. {value: 1}]->(b {type: 'cancer'})
RETURN (a), (b)
但是没有指定边缘上的值应该是1,它们只需要在跳跃过程中的所有边缘之间相等。
答案 0 :(得分:1)
我会在你的路径上添加一个上限。或者使用(所有)shortestPath(s)
另请务必按索引标签+属性组合查找a
和b
。
然后,您可以在形成路径的关系集合中使用谓词。
MATCH (a:Label {type: 'cin1'})
MATCH (b:Label {type: 'cancer'})
MATCH shortestPath((a)-[rels:Next*1..20]->(b))
WHERE ALL(r in tail(rels) WHERE (head(rels)).value = r.value)
RETURN (a), (b)