我试图回答这个问题:我的数据库中的哪些演员与凯文·培根不在12度范围内。我尝试做的是从凯文培根收集12度以内的所有演员,并从数据库中的演员总数中减去它们。不幸的是,我做错了,因为实际上没有减法,结果返回的数量实际上增加了。我正在使用此数据库:https://neo4j.com/developer/movie-database/
这是我的代码:
MATCH shortestPath((connectingActor:Actor)-[:ACTS_IN*1..24]-(bacon:Actor {name: 'Kevin Bacon'}))
WHERE connectingActor <> bacon
WITH collect(DISTINCT connectingActor) as connectingActors
MATCH (actors:Actor)
WHERE connectingActors <> actors
RETURN DISTINCT actors.name
答案 0 :(得分:0)
你很亲密。问题出在你的RETURN之前的WHERE子句中。
您当前的WHERE子句正在比较:Actor节点到您的connectingActors
列表,并且由于节点永远不是列表,否则:Actors将被过滤。
您需要测试列表中的成员资格:
...
WHERE NOT actors in connectingActors
...