Neo4j:获取一组节点之间的所有关系

时间:2020-11-09 14:27:15

标签: neo4j

假设我有节点A和B。我想找到连接这两个节点的所有路径。我该怎么办?

这是我制作的插图。抱歉,我知道这很烂

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用variable length relationship返回所有此类路径。

对于您的示例(具有指向两个方向的关系),使用无向可变长度关系的此查询应该有效:

MATCH p=(:Foo {id: 'A'})-[*..7]-(:Foo {id: 'B'})
RETURN p

但是,请注意,没有合理上限的可变长度关系实际上可能永远占用或耗尽内存。因此,根据您的数据库特性,您应该确定并使用合理的上限。例如:

MATCH p=(:Foo {id: 'A'})-[:TYPE_A|TYPE_B|TYPE_C*..7]-(:Foo {id: 'B'})
RETURN p

为提高性能,通常还可以在路径上指定可能的关系类型,以避免沿着不适当的路径走,例如:

{{1}}
相关问题