Neo4j cypher查询以查看给定节点是否已连接

时间:2017-04-18 06:25:05

标签: neo4j cypher

给定以下节点B,E,F,G,H,J,K。我必须写一个neo4j查询来检查这些节点是如何相互连接的。

例如,假设这是我想要显示的模式。

B-H-F 
  |
  G-J-K-E   

显示此图表的查询是什么?我不想显示连接到这些节点的所有其他节点。

1 个答案:

答案 0 :(得分:0)

您需要找到每对源节点之间的路径。

确保每个路径仅包含源集中包含的那些节点。

您可以使用密码执行此操作:

WITH {GIVEN_NODES} as NDS // The source array of node IDs
UNWIND RANGE(0, size(NDS)-2) as i
UNWIND RANGE(i+1, size(NDS)-1) as j
WITH NDS,
     NDS[i] as N1,
     NDS[j] as N2
MATCH path = (N1)-[*]-(N2) 
      WHERE length(path)+1 <= size(NDS) AND
      ALL(n in nodes(path) WHERE n in NDS)
RETURN path