我尝试在删除第一个节点之前,将所有进出的关系从一个节点转移到另一个节点。他们都有相同的标签。 我看到了Neo4j Cypher: copy relationships and delete node 但在我的情况下,我不知道关系的类型,我想转移进入和离开的。
我正在寻找基于neo4j.rb的密码查询或查询
答案 0 :(得分:4)
我不认为纯粹的密码可以实现这一点。这是一个使用neo4j.rb的解决方案,我认为可行:
# Assuming node1 already loaded
node_query = Neo4j::Session.query.match(node: {neo_id: node1.neo_id})
types = node_query.match('node-[rel]-()').pluck('DISTINCT type(rel)')
types.each do |type|
node_query.match('node-[rel]->(other)').with(:node, :rel, :other).create("node-[new_rel]->other").set('new_rel = rel').exec
node_query.match('node<-[rel]-(other)').with(:node, :rel, :other).create("node<-[new_rel]-other").set('new_rel = rel').exec
end