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

gzszwxb4  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(94)

假设我必须获得n的子图中的所有节点:Customer with customer_id 4..


的数据
从一条路径中断后,我必须检查从这个节点'n'开始的其他路径。我必须重复这个过程,直到所有路径都被遍历并返回相关节点。在我提供的图像中,我已经扩展了连接到n的14个节点中的两条路径:客户(蓝色节点)。每个连接到蓝色的紫色节点可以进一步扩展类似于其他两个路径。我需要将这些节点存储在java中的数据结构中。任何关于如何实现这一点的指导都非常重要。helpful.Thanks

gg0vcinb

gg0vcinb1#

适用于Neo4j 5.9+

返回子图,但不包括与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

对于Neo4j < 5.9

返回子图,但不包括与Action = 'ODC'的任何关系之外的任何节点:

MATCH (:Customer {customer_id: 4})-[r*0..]-(n)
WHERE all(rel IN r WHERE rel.Action <> 'ODC')
RETURN DISTINCT n


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

MATCH path = (:Customer {customer_id: 4})-[r*0..]-()-[{Action: 'ODC'}]-()
WHERE all(rel IN r WHERE rel.Action <> 'ODC')
UNWIND nodes(path) AS n
RETURN DISTINCT n

相关问题