如何解决用一个包含被替换节点标签的 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 函数来更改(或更新)它。我所做的是
- 查找附加到数据的所有节点和关系
- 创建所需的关系,但使用虚拟关系类型:REL
- 使用 apoc 函数 apoc.refactor.setType 将关系类型从 REL 改为 c.label
- 不要忘记删除虚拟关系 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
之后:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。