MATCH (a, b)
WITH a, b
MATCH path = (a)-[*..n]-(b)
WHERE ALL(relName IN ['relname1', 'relname2']
WHERE ANY(rel IN relationships(path) WHERE rel.display_name = relName)
AND a.name = 'node1name' and b.name = 'node2name'
RETURN path
这个
( )
在你的第一个
MATCH
可以被解释为单个节点模式。但在每个节点模式中最多可以声明一个变量,因此
(a, b)
引发语法错误。
无论如何,看起来你并不真的需要前两行。这是一个有效的查询(如果
n
替换为正整数),绑定到名称为的起始节点
'node1name'
和具有名称的结束节点
'node2name'
:
MATCH path = (a)-[*..n]-(b)
WHERE all(relName IN ['relname1', 'relname2']
WHERE any(rel IN relationships(path) WHERE rel.display_name = relName))
AND a.name = 'node1name' and b.name = 'node2name'
RETURN path