从Neo4J的一个节点开始获取整个子图?

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

我想从特定节点开始提取(检索)图形中的所有节点和关系。

我尝试过类似的东西:

MATCH (n:Resource {resource_id: "R208997"})
MATCH p=(n)-[*]->(m) 
RETURN p

这从我拥有的节点获取所有路径,但这不是我想要的。

我想要的是有一个表格显示以下内容:

From | Rel. | To
----------------
x    | r    | y
z    | r2   | g

我正在使用版本:3.4.12 Neo4J的社区版,我正在处理的数据如下所示:enter image description here

neo4j cypher graph-databases
1个回答
1
投票

最好的方法是使用APOC Procedures,我们有一些路径扩展器处理有效地执行此操作。

您可以使用apoc.path.subgraphAll(),YIELDing关系,您可以相应地使用别名:

MATCH (n:Resource {resource_id: "R208997"})
CALL apoc.path.subgraphAll(n, {relationshipFilter:'>'}) YIELD relationships
UNWIND relationships as rel
RETURN startNode(rel) as from, type(rel) as rel, endNode(rel) as to

如果您只需要从节点而不是节点本身输出某些属性,那么您可以相应地在RETURN中修改它。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.