Cypherで関係タイプを変更する方法が見つかりません。この操作はまったく可能ですか?そうでない場合:この結果を達成する最良の方法は何ですか?
残念ながら現時点では、rel-typeを直接変更することはできません。
できるよ:
MATCH (n:User {name:"foo"})-[r:REL]->(m:User {name:"bar"})
CREATE (n)-[r2:NEWREL]->(m)
// copy properties, if necessary
SET r2 = r
WITH r
DELETE r
Michael Hunger
からの回答は正しいですが、この暗号クエリにはwith
が必要です。 WITH
は、1つの暗号クエリで異なる操作を切り替える場合に使用できます。 http://docs.neo4j.org/chunked/stable/query-with.html
MATCH (n:User {name:"foo"})-[r:REL]->(m:User {name:"bar"})
CREATE (n)-[r2:NEWREL]->(m)
SET r2 = r
WITH r
DELETE r
できません。関係のタイプは、ノードをグループ化する任意のバッグであるノードラベルとは対照的に、構成的または不可欠です。 ( 類推についてはこのq/aを参照 を参照してください。)新しい関係を作成し、古い関係を削除する必要があります(存在する場合はプロパティをコピーします)。
修正するときは以下を使います。
match (from:Label1 { prop: 1 })-[r:RELATIONSHIP]->(to:Label2 { prop: 2 })
with from, r, to
create (from)-[:NEW_RELATIONSHIP]->(to)
with r
delete r
私は単に関係を削除して新しいものを作成します:
MATCH (a) - [r:OLD_RELATION] -> (b)
DELETE r
CREATE (a) - [:NEW_RELATION] -> (b)