Neo4j查找路径但没有某个节点

Dar*_*wan 3 path nodes neo4j cypher

我对Neo4j不是很熟悉,因为我刚用它好几天了.

但现在我想找到两个节点之间的路径

喜欢路径:A&D

A - > B - > C - > D.

A - > B - > E - > D.

A - > C - > E - > D.

并使用"WHERE NOT"来消除节点B.

所以我将离开路径A - > C - > E - > D.

我有什么方法可以做到这一点?

这是我的Cypher:

MATCH (home { name:'Grove' }),(school { name:'Moulton' }),(Ann {name:'Ann'}),
p = ((home)-[*..4]->(school))
WHERE NOT ((home)-[]->(Ann))
RETURN p
Run Code Online (Sandbox Code Playgroud)

它不适合我

Ste*_*ter 5

您可以使用子句中的NONE谓词WHERE来过滤包含B节点的路径.有关示例,请参见http://console.neo4j.org/?id=hppthl.

cypher语句如下所示:

 MATCH p=(:Person { name:'A' })-[:KNOWS*..4]->(:Person { name:'D' }), 
       (without:Person { name:'B' }) 
 WHERE NONE (x IN nodes(p) WHERE x=without)
 RETURN p
Run Code Online (Sandbox Code Playgroud)