回归'共同演员'在Neo4j cypher教程中

时间:2016-02-26 02:17:58

标签: neo4j cypher

我正在阅读与基本Neo4j安装捆绑在一起的基本教程。

这个Cypher查询工作正常,并返回所有Tom Hanks'共同行动者。

MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) RETURN coActors.name  

因此查询的第一部分返回节点&#39; Tom Hanks&#39;。没问题。但我不理解的部分是第二部分。

<-[:ACTED_IN]-(coActors) RETURN coActors.name行无法明确排除&#39; Tom Hanks&#39;从结果集(虽然它显然)。在阅读时,它会让所有人都回归[:ACTED_IN] ......这应该包括Tom Hanks。

此查询如何返回除 Tom Hanks之外的所有其他演员

1 个答案:

答案 0 :(得分:1)

MATCH子句筛选出所有重复的关系。这就是为什么你的查询没有返回&#34; Tom Hanks&#34;。

另一方面,如果您拆分MATCH子句以便在单独的子句中找到关系,您会看到&#34; Tom Hanks&#34;返回:

MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)
MATCH (m)<-[:ACTED_IN]-(coActors)
RETURN coActors.name;