如何解决RedisGraph:合并节点并移动所有重新安置吗?
在使用Cypher / python的RedisGraph中,有一种方法
合并两个节点并将所有关系从旧节点移到新节点?
我怀疑没有纯Cypher解决方案...在这种情况下,什么是等效的原子操作以及如何将其组合以实现MERGE-nodes + rel
neo4j具有apoc.refactor.mergeNodes(节点,选项),apoc.refactor.mergeRelationships(相关,选项),但这对我没有帮助!:(因为我使用的是RedisGraph。
问题是在RG中,我没有较低级别的权限来进行枚举/迭代来以编程方式执行此操作!
这在一个方向上有效,我必须申请->反面
MATCH (old)-[r:q]->(from_to)
WHERE old.val = $old
MATCH (new) WHERE new.val = $new
MERGE (new)-[nr2:q]->(from_to)
SET nr2.val = r.val
DELETE r
是否可以在单个查询中将其组合?
解决方法
我认为这可以通过纯Cypher实现:
MATCH (old {val: 'old'})-[e:E]->(old_to)
MERGE (new {val: 'new'})
CREATE (new)-[e2:E]->(old_to)
SET e2.prop1 = e.prop1,[...]
DELETE e
这里的主要烦恼是必须显式设置所有边缘属性(以及节点属性(如果还要迁移的话)),因为RedisGraph当前不支持设置属性映射。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。