如何构建一个 Neo4J 查询:
1)将返回任何一对节点通过一定数量的不同关系连接的所有节点?例如,由 2、3 或 5 个不同关系连接的节点?因此,而不是返回具有未知数量关系的连接节点的查询:
MATCH (n)-[r]->(m) RETURN n, r, m;
在一般情况下,如何查询任何一对节点通过 n > K、n = L 或 n < M 关系连接的子图?
[更新]
要查找由恰好 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;