如果节点A和B之间的关系为A-[:knows]-> B,则以下查询不返回
MATCH (A)-[:knows]-(B)-[:knows]-(A) return *;
带有显式“ with”的查询有效
MATCH (A)-[:knows]-(B) with B MATCH (B)-[:knows]-(A) return *;
为什么会这样?为什么第一个查询不返回任何内容? 即使我在匹配查询中使用关系方向,行为也不会改变。
答案 0 :(得分:2)
在模式内,Cypher将仅遍历一种关系。
使用模式(A)-[r1:knows]-(B)-[r2:knows]-(A)
,r1
必须与r2
不同。
因此,如果A
和B
之间只有一种关系,则此模式将不返回任何内容。
这样做是为了避免查询循环。