在Neo4j中,我如何迭代遍历从起始节点获得的节点和关系路径,直到达到特定的关系属性?

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

考虑我必须获取 n:Customer 的子图中的所有节点,customer_id 4....从这个节点开始,我必须遍历以 'n' 开头的路径中的每个节点,并在以下情况下中断或停止沿路径遍历与“Action”属性的关系设置为“ODC”。每个关系在我的模型中肯定有此属性。设置为 ODC 或 ODSN

从一条路径中断后,我必须检查源自该节点“n”的其他路径。我必须重复这个过程,直到遍历所有路径并返回相关节点。 在我提供的图像中,我扩展了连接到 n:Customer(蓝色节点)的 14 个节点中的两条路径。连接到蓝色的每个紫色节点都可以与其他两条路径类似地进一步扩展。 我需要将这些节点存储在java的数据结构中。 任何有关如何解决此问题的指导都会非常有帮助。谢谢

neo4j cypher neo4j-apoc
1个回答
0
投票

返回子图,但不包括超出与

action = 'ODC'
任何关系的任何节点:

MATCH (Customer {customer_id: 4})-[r WHERE r.action <> 'ODC']-*(n)
RETURN DISTINCT n

要返回直到包括这些节点的子图:

MATCH path = (Customer {customer_id: 4})-[r WHERE r.action <> 'ODC']-*
               ()-[{action: 'ODC'}]-()
UNWIND nodes(path) AS n
RETURN DISTINCT n
© www.soinside.com 2019 - 2024. All rights reserved.