neo4j - 使用变量匹配并在同一变量的结果之间创建关系
问题描述
我有这样的关系:
我的意思是,我现在想在这场比赛之后创建 1 和 2 之间的关系,所以我需要类似的东西而不是 RETURN n.name:CREATE n1 -[A_RELATIONSHIP]- n2
其中n1 =“服务网关”和n2 =“eNode-B”。
实际上,如果在这种情况下,如果相同标签(NetworkFunction)的这两个匹配(因为它们都通过具有不同标签但发送或接收关系的另一个节点相关),则在它们之间创建称为“X”的关系
我怎样才能做到这一点?
解决方案
您可以收集与移动管理具有发送或接收关系的所有网络功能。然后为每个网络对创建该关系 (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)
推荐阅读
- oracle - 如何修复 ORA-04091:表正在变异,触发器/函数可能看不到它?
- flutter - 如何制作带有白色边框和背景颜色的最喜欢的图标?
- python - tf.compat.v1.train.exponential_decay:全局步长 = 0
- symfony - Symfony messenger 工作人员在主管下运行时不会停止
- azure-devops - 使用负载均衡器部署到多台服务器
- airflow - Airflow - 只有在另一个 DAG 上的所有任务都成功时才运行 DAG
- python-3.x - 复制没有父文件夹的子文件夹
- javascript - 如何遍历地图并仅获取前几个键值对并将它们传递给另一个函数?
- java - 每当我将文件保存为文件类型 java 时,VS 代码都会打开 .class 文件而不是“.java”文件,并且不会创建 .java 文件
- javascript - 表单提交的时间戳