【发布时间】:2016-03-11 09:24:10
【问题描述】:
我不明白 Neo4j 文档的 this 页面中的两个查询是如何工作的。
首先,这是图表:
这是我不明白的第一个查询:
MATCH (user:User { name: 'Adam' })-[r1:FRIEND]-(friend)
MATCH (friend)-[r2:FRIEND]-(friend_of_a_friend)
RETURN friend_of_a_friend.name AS fofName
这给出了“大卫”、“亚当”的结果。
我原本预计结果是“David”,只是因为第一个 MATCH 子句将给出“Pernilla”节点,而第二个 MATCH 子句将使用该节点给出“David”节点。
有人可以告诉我上述查询的实际工作原理吗?
我不明白的第二个查询是:
MATCH (user:User { name: 'Adam' })-[r1:FRIEND]-(friend),(friend)-[r2:FRIEND]-(friend_of_a_friend)
RETURN friend_of_a_friend.name AS fofName
由于文档(到目前为止)没有讨论具有两种不同模式的 MATCH 子句如何工作,我真的认为上面的查询也等同于第一个查询。我可以了解一下此查询的工作原理,以便了解它与第一个查询的不同之处吗?
【问题讨论】: