返回';共同参与者';在Neo4j cypher教程中

返回';共同参与者';在Neo4j cypher教程中,neo4j,cypher,Neo4j,Cypher,我将浏览与基本Neo4j安装捆绑在一起的基本教程 这个Cypher查询运行良好,返回Tom Hanks的所有合作者 MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) RETURN coActors.name MATCH(tom:Person{name:“tom Hanks”})->(m)AMATCH子句过滤掉所有重复的关系。这就是为什么您的查询没有返回“Tom Hanks

我将浏览与基本Neo4j安装捆绑在一起的基本教程

这个Cypher查询运行良好,返回Tom Hanks的所有合作者

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

MATCH(tom:Person{name:“tom Hanks”})->(m)A
MATCH
子句过滤掉所有重复的关系。这就是为什么您的查询没有返回“Tom Hanks”

另一方面,如果您拆分
MATCH
子句,以便在单独的子句中找到关系,您将看到返回的“Tom Hanks”:

MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)
MATCH (m)<-[:ACTED_IN]-(coActors)
RETURN coActors.name;
匹配(tom:Person{name:“tom Hanks”})-[:扮演]->(m)

MATCH(m)实现MATCH以删除重复项的目的是什么?据我所知,答案是不准确的——汤姆·汉克斯确实也是汤姆·汉克斯出演的电影中的一名演员。neo4j的人声称,这种行为通常是他们想要的。无论如何,现在在不破坏大量现有查询的情况下更改它已经太晚了。很高兴我现在就解决了它,而不是以后。谢谢你的帮助!关于以单一模式匹配的关系的唯一性的更多信息:我没有意识到我的问题是重复的。