在RedisGraph中使用Cypher/python有没有一种方法
是否合并两个节点并将所有关系从旧节点移动到新节点?
我怀疑没有纯粹的Cypher解决方案。在这种情况下,什么是等价的原子操作,以及如何组合它们以实现合并节点+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有没有办法将它组合到单个查询中?
发布于 2020-09-02 02:08:28
我认为这可以在纯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当前不支持设置属性映射。
https://stackoverflow.com/questions/63660923
复制相似问题