前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图重构-重复关系重构

图重构-重复关系重构

作者头像
马超的博客
发布2022-07-04 14:23:54
8630
发布2022-07-04 14:23:54
举报
文章被收录于专栏:马超的博客

今天看到社区有人提问如何进行关系重构,顺手回答了一下。在此记录下关系重构的方法。

- 创建测试数据

代码语言:javascript
复制
MERGE (A:Test {name:'A'})
MERGE (B:Test {name:'B'})
CREATE (A)-[:Realation {name:'属性1'}]->(B)
CREATE (A)-[:Realation {name:'属性1'}]->(B)
CREATE (A)-[:Realation {name:'属性2'}]->(B)
CREATE (A)-[:Realation {name:'属性2'}]->(B)
CREATE (A)-[:Realation {name:'属性2'}]->(B)
CREATE (A)-[:Realation {name:'属性3'}]->(B)

- 查询测试数据

代码语言:javascript
复制
MATCH p=(A:Test {name:'A'})-->(B:Test {name:'B'}) RETURN p

- 如何重构

代码语言:javascript
复制
想请教下大佬,如何删除两个节点间的重复关系,重复的定义指的是,关系的属性不同
比如
(A)-[:Realation{name:‘属性1’]-(B)
(A)-[:Realation{name:‘属性1’]-(B)
(A)-[:Realation{name:‘属性2’]-(B)
(A)-[:Realation{name:‘属性2’]-(B)
(A)-[:Realation{name:‘属性2’]-(B)
(A)-[:Realation{name:‘属性3’]-(B)
想把重复的部分去掉,就是变成
(A)-[:Realation{name:‘属性1’]-(B)
(A)-[:Realation{name:‘属性2’]-(B)
(A)-[:Realation{name:‘属性3’]-(B)

- 重构关系

代码语言:javascript
复制
MATCH p=(A:Test {name:'A'})-[r]->(B:Test {name:'B'})
WITH ID(r) AS id,r.name AS name
WITH name,COLLECT(id) AS relIds
WITH name,relIds,SIZE(relIds) AS relIdsSize
WHERE relIdsSize>1
WITH name,apoc.coll.subtract(relIds, [relIds[0]]) AS deleteRelIds
WITH name,deleteRelIds
MATCH ()-[r]-() WHERE ID(r) IN deleteRelIds DELETE r

- 重构结果

- 更多复杂重构可以使用下面的存储过程实现

代码语言:javascript
复制
CALL apoc.do.case([relationship=1,\'MATCH (from:Label {hcode:$fromHcode}),(to:Label {hcode:$toHcode}) MERGE (from)-[:NEXT]->(to)\',relationship=-1,\'MATCH (from:Label {hcode:$fromHcode}),(to:Label {hcode:$toHcode}) MERGE (from)<-[:NEXT]-(to)\'],\'\',{fromHcode:fromHcode,toHcode:toHcode}) YIELD value RETURN value

- 社区问答连接

代码语言:javascript
复制
http://neo4j.com.cn/topic/5f3b28e4a4477ec754d2b55f

- 推荐一下lyonwj的博客

代码语言:javascript
复制
https://www.lyonwj.com/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马超的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档