3
我試圖在刪除第一個節點之前將所有從一個節點到另一個節點的傳入和傳出關係轉移到另一個節點。他們都有相同的標籤。 我看到這個Neo4j Cypher: copy relationships and delete node 但在我的情況下,我不知道關係的類型,我想轉移ingoing和外向的。Neo4j Cypher:在用另一個節點替換節點之前傳輸所有關係
我在找無論是暗號查詢或基於neo4j.rb
我試圖在刪除第一個節點之前將所有從一個節點到另一個節點的傳入和傳出關係轉移到另一個節點。他們都有相同的標籤。 我看到這個Neo4j Cypher: copy relationships and delete node 但在我的情況下,我不知道關係的類型,我想轉移ingoing和外向的。Neo4j Cypher:在用另一個節點替換節點之前傳輸所有關係
我在找無論是暗號查詢或基於neo4j.rb
我不認爲這是可能的純CYPHER查詢。下面是使用,我認爲將工作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
我得到的類型,但隨後在每次循環我不知道如何指定new_rel其他節點。 再次感謝Brian;) – armedwing 2015-02-01 13:03:15
只是編輯,因爲第二個查詢是在錯誤的方向,他們都需要一個'執行' – 2015-02-01 13:57:12
另一個節點正在由'other'變量指定。這應該在'WITH'子句中傳遞,然後在'CREATE'子句中再次匹配。我可能會誤解...... – 2015-02-01 13:57:57