我的图形模式是 (actors)-[:ACTED_IN]->(movies)
.
我知道如何找到与特定 Actor 合作过的 Actor ,如下所示:
MATCH (actor {name:"Tom Hanks"} )-[:ACTED_IN]->(movies)<-[:ACTED_IN]-(costars)
return distinct costars;
我知道如何找到所有在某部电影中工作过的 Actor :
MATCH (all_actor)-[:ACTED_IN]->(movies) return distinct all_actor;
但是我不知道如何找到所有不在配音 Actor 中的 Actor 。我该怎么办?
最佳答案
由于您想从全局参与者列表中扣除共同参与者,这不是最好的图形查询,这里有一些建议。
// Max de Marzi
MATCH (actor:Actor {name:"Tom Hanks"})-[:ACTED_IN]->(movie), (other:Actor)
WHERE NOT (movie)<-[:ACTED_IN]-(other)
RETURN other
// Wes Freeman
MATCH (actor:Actor {name:"Tom Hanks"}), (other:Actor)
WHERE NOT (actor)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)
RETURN other
// Michael Hunger
MATCH (actor:Actor {name:"Tom Hanks"} )-[:ACTED_IN]->(movies)<-[:ACTED_IN]-(coactor)
WITH collect(distinct coactor) as coactors
MATCH (actor:Actor)
WHERE NOT actor IN coactors
RETURN actor
关于Neo4j - 不在查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185463/