我目前开始学习如何Cypher工作,我卡住了,试图找到2个特定的节点是否直接连接。我想得到1,如果节点连接,如果他们没有。大家好,我写了下面但这只是找到所有的neigbors。匹配(n,其中ID(n)=1000)调用apoc路径子图节点(n,{最大级别:1})YIELD节点RETURN节点有谁能帮我找到一个解决方案,如何做到这一点?非常感谢您的光临。
7d7tgy0s1#
你说你有两个特定的节点,所以我假设你也知道另一个节点。我会解决这个问题没有APOC。获得Cypher的基础没有额外的库第一,然后找出你错过了什么,是-在我看来-一个更好的方式来学习它。使用CASE表达式可能已经完成了这项工作。
CASE
MATCH (a:A) RETURN CASE WHEN exists((a)-[:RELATIONSHIP_TYPE]-(:B)) THEN 1 ELSE 0 END AS result
如果需要在开始时更具体地提取两个节点:
MATCH (a:A{name:'abc'}) MATCH (b:B{name:'xyz'}) RETURN CASE WHEN exists((a)-[:RELATIONSHIP_TYPE]-(:b)) THEN 1 ELSE 0 END AS result
也是fbiville在他评论中说的。
1条答案
按热度按时间7d7tgy0s1#
你说你有两个特定的节点,所以我假设你也知道另一个节点。我会解决这个问题没有APOC。获得Cypher的基础没有额外的库第一,然后找出你错过了什么,是-在我看来-一个更好的方式来学习它。
使用
CASE
表达式可能已经完成了这项工作。如果需要在开始时更具体地提取两个节点:
也是fbiville在他评论中说的。