首页 > 解决方案 > 使用变量匹配并在同一变量的结果之间创建关系

问题描述

我有这样的关系:

在此处输入图像描述

我已经建立了这个条款: 在此处输入图像描述

我的意思是,我现在想在这场比赛之后创建 1 和 2 之间的关系,所以我需要类似的东西而不是 RETURN n.name:CREATE n1 -[A_RELATIONSHIP]- n2

其中n1 =“服务网关”和n2 =“eNode-B”。

实际上,如果在这种情况下,如果相同标签(NetworkFunction)的这两个匹配(因为它们都通过具有不同标签但发送或接收关系的另一个节点相关),则在它们之间创建称为“X”的关系

我怎样才能做到这一点?

标签: neo4jcypher

解决方案


您可以收集与移动管理具有发送或接收关系的所有网络功能。然后为每个网络对创建该关系 (A_RELATIONSHIP)。请注意,我使用了 APOC 函数 (apoc.coll.combinations),因此请确保已安装此函数。

MATCH (n:NetworkFunction)
WHERE size((n)-[:SENDS|:RECEIVES]-(:MobilityManagement)) > 0
WITH collect(n) as allNetworkFunctions
UNWIND apoc.coll.combinations(allNetworkFunctions, 2) as network
WITH network[0] as first, network[1] as second
MERGE (first)-[:A_RELATIONSHIP]-(second)

推荐阅读