3

最初のリレーションシップを削除する前に、ノードから別のノードにすべてのインゴーイング リレーションシップとアウトゴーイング リレーションシップを転送しようとしています。どちらも同じラベルです。このNeo4j Cypher: copy relationship and delete nodeを見まし たが、私の場合、関係のタイプがわからず、着信と発信の両方を転送したいと考えています。

暗号クエリまたは 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 に答える