请帮助我在 "Neo4j" 中使用 "EXCEPT Clause"
Please Help Me Use "EXCEPT Clause" in "Neo4j"
我在 Neo4j 中有一些节点,具有友谊关系。
现在我想查询一个节点(例如:Kate)的朋友的朋友,除了已经与她成为朋友的节点。
我试过这个命令,但它不起作用:
MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
WHERE (pp) NOT (p)->[friends_with]-(pp)
return pp;
或
MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
WHERE (pp) OUT [(p)->[friends_with]-(pp)]
return pp;
如果有人能提供帮助,我将不胜感激
差不多了,只是语法:
MATCH (p:person {name:"Kate"})-[:friends_with*2..3]->(pp:person)
WHERE NOT ((p)-[:friends_with]->(pp))
return pp;
顺便说一句,你也考虑了方向。所以如果(pp)-[:friends_with]->(p)
,就不会被排除。如果那不是本意,那么就不要使用说明了。
我在 Neo4j 中有一些节点,具有友谊关系。 现在我想查询一个节点(例如:Kate)的朋友的朋友,除了已经与她成为朋友的节点。 我试过这个命令,但它不起作用:
MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
WHERE (pp) NOT (p)->[friends_with]-(pp)
return pp;
或
MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
WHERE (pp) OUT [(p)->[friends_with]-(pp)]
return pp;
如果有人能提供帮助,我将不胜感激
差不多了,只是语法:
MATCH (p:person {name:"Kate"})-[:friends_with*2..3]->(pp:person)
WHERE NOT ((p)-[:friends_with]->(pp))
return pp;
顺便说一句,你也考虑了方向。所以如果(pp)-[:friends_with]->(p)
,就不会被排除。如果那不是本意,那么就不要使用说明了。