3

在删除第一个节点之前,我正在尝试将所有传入和传出关系从一个节点转移到另一个节点。他们都有相同的标签。我看到了这个Neo4j Cypher:复制关系和删除节点 ,但就我而言,我不知道关系的类型,我想同时传输传入和传出的关系。

我正在寻找密码查询或基于 neo4j.rb 的查询

4

1 回答 1

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
于 2015-02-01T12:34:47.087 回答