请帮我使用“Neo4j”中的“EXCEPT Clause”

时间:2015-09-02 08:05:38

标签: neo4j cypher social-networking except

我在Neo4j中有一些节点,有友谊关系。 现在我想查询一个节点的朋友(例如Kate)的朋友,除了已经与她成为朋友的节点。 我试过这个命令,但它不起作用:

MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
WHERE (pp) NOT (p)->[friends_with]-(pp)
return pp;

OR

  MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
    WHERE (pp) OUT [(p)->[friends_with]-(pp)]
    return pp;

如果有人能提供帮助,我将不胜感激

1 个答案:

答案 0 :(得分:3)

几乎就在那里,只是语法:

MATCH (p:person {name:"Kate"})-[:friends_with*2..3]->(pp:person)
WHERE NOT ((p)-[:friends_with]->(pp))
return pp;
顺便说一句,你也考虑过这个方向。因此,如果(pp)-[:friends_with]->(p),它将被排除在外。如果那不是意图那么就离开方向。