微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用一个包含被替换节点标签的 Realtionship 替换一个 Relationship-Node->Relationship 结构

如何解决用一个包含被替换节点标签的 Realtionship 替换一个 Relationship-Node->Relationship 结构

我有一个图表,如果有以下结构:

(a)-[b:Input]->(c:Data)-[e:Output]->(f)

我想用与来自 c 的标签的关系替换 b,c,e:

(a)-[n:Data]->(f)

标签应该是自动生成的。我有多个 c 标签,例如:Data、AMC、Door、New_HS 等。 所以新创建的关系的标签应该是这样创建的:

[n:title = c.Label]

解决方法

我们不能基于属性创建关系。您需要创建一个新关系并将类型(或关系名称)更改为您的数据标签名称。我使用 apoc 函数来更改(或更新)它。我所做的是

  1. 查找附加到数据的所有节点和关系
  2. 创建所需的关系,但使用虚拟关系类型:REL
  3. 使用 apoc 函数 apoc.refactor.setType 将关系类型从 REL 改为 c.label
  4. 不要忘记删除虚拟关系 REL
Match (a)-[:Input]->(c:Data)-[:Output]->(f)
CREATE (a)-[r:REL]->(f) 
WITH a,r,c,f
CALL apoc.refactor.setType(r,c.label)
YIELD input,output
WITH a,f 
MATCH (a)-[rel:REL]->(f) 
DELETE rel
RETURN a,f  

之前: enter image description here

之后:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。