Jac*_*ack 5 neo4j graph-databases cypher
我有的图表架构是(actors)-[:ACTED_IN]->(movies).
我知道如何找到与特定演员合作的演员如下:
MATCH (actor {name:"Tom Hanks"} )-[:ACTED_IN]->(movies)<-[:ACTED_IN]-(costars)
return distinct costars;
我知道如何找到所有在某部电影中工作的演员:
MATCH (all_actor)-[:ACTED_IN]->(movies) return distinct all_actor;
但是我不知道如何找到不在costars中的所有演员.我该怎么办呢?
由于您想从全局actor列表中扣除coactors,这不是最好的图形查询,这里有一些建议.
// 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
Run Code Online (Sandbox Code Playgroud)