我在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;
如果有人能提供帮助,我将不胜感激
答案 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)
,它将被排除在外。如果那不是意图那么就离开方向。