我正在阅读与基本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之外的所有其他演员?
答案 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;