0

如何构建一个 Neo4J 查询:

1)将返回任何一对节点通过一定数量的不同关系连接的所有节点?例如,由 2、3 或 5 个不同关系连接的节点?因此,而不是返回具有未知数量关系的连接节点的查询:

MATCH (n)-[r]->(m) RETURN n, r, m;

在一般情况下,如何查询任何一对节点通过 n > K、n = L 或 n < M 关系连接的子图?

4

1 回答 1

1

[更新]

要查找由恰好 3 个关系的路径连接的节点:

MATCH (n)-[r*3]->(m) RETURN n, r, m;

要查找由 [2..5] 范围内的关系组成的路径连接的节点:

MATCH (n)-[r*2..5]->(m) RETURN n, r, m;

查找由最多 5 个关系的路径连接的节点(1 的下限避免了没有关系的情况,即 n 与 m 相同):

MATCH (n)-[r*1..5]->(m) RETURN n, r, m;

要查找由至少 2 个关系的路径连接的节点:

MATCH (n)-[r*2..]->(m) RETURN n, r, m;

要查找通过 3 个关系直接连接的节点对:

MATCH (n)-[r]->(m)
WITH n, m, COLLECT(r) AS rels
WHERE SIZE(rels) = 3
RETURN n, rels, m;
于 2014-04-21T19:23:00.240 回答