如何找出一组节点之间的连接?

时间:2014-09-19 07:57:37

标签: neo4j cypher

我有一个场景,我知道节点列表的ID。 我需要在给定ID的节点之间获得连接(如果存在)。 有没有办法实现这个目标? 更新: 我正在使用node id属性而不是neo4j的内部ID(使用like match(n:Person {id:3}))

2 个答案:

答案 0 :(得分:3)

您可以使用IN子句从值列表中进行选择:

MATCH (n)-[r*..2]-(m)
WHERE ID(n) IN [0,1,2] AND ID(m) IN [2,3,4]
RETURN r

我在这里将路径长度限制为2跳不确定关系类型,并随意挑选了一些ID。

改为返回路径:

MATCH p=(n)-[r*..2]-(m)
WHERE ID(n) IN [0,1,2] AND ID(m) IN [2,3,4]
RETURN p

答案 1 :(得分:2)

START n=node(1,2,3,4,5,6) //your IDs of a list of nodes
MATCH p=n-[r]-m  //the connection for 1 hop. for multiple hops do n-[r*]-m
WHERE Id(m) in [1,2,3,4,5,6] //your IDs of a list of nodes
RETURN p