neo4j 如何获取最终连接到给定节点的所有节点?

问题描述 投票:0回答:1

我并不是想获取所有连接的节点, 当我跑步时

MATCH (n:Person) RETURN n LIMIT 200
我可以看到我的所有节点和关系都分为三组,

enter image description here

我试图找到连接到给定节点的所有节点(通过1个或多个关系),就像如果我给出位于右下组中心的节点3,我可以取回第三组中的所有节点吗?

enter image description here

所以我尝试了

MATCH p=(a:Person {name:'node3'})-[:KNOWS]->(b) return p

但它只返回直接连接到node3的节点,我们是否可以获得像group3中所示的所有节点?

enter image description here

database neo4j graph-databases
1个回答
0
投票

要获取来自该特定

KNOWS
的所有传出
Person
路径,您可以执行 可变长度关系 搜索:

MATCH p=(a:Person {name: 'node3'})-[:KNOWS*]->(b)
RETURN p

但是,最佳实践是为路径长度设置合理的上限,以避免耗尽内存或永远花费时间。例如,设置距离起始节点 7 步的上限:

MATCH p=(a:Person {name: 'node3'})-[:KNOWS*..7]->(b)
RETURN p
© www.soinside.com 2019 - 2024. All rights reserved.