たとえば、私にはユーザーがいます:
CREATE (n { name: 'Tamil' })
および2つの役割:
CREATE (n { name: 'developer' } )
CREATE (n { name: 'tester' } )
次に、ユーザーと2つの役割のそれぞれとの関係を作成します。
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'developer'
CREATE (a)-[r:HAS_ROLE]->(b)
RETURN r
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'tester'
CREATE (a)-[r:HAS_ROLE]->(b)
RETURN r
次に、ユーザーからテスターの役割関係を削除します。私は試した:
CYPHER 1.9 START a = node:node_auto_index('name:Tamil')
MATCH a-[r:HAS_ROLE]-()
RETURN r
しかし、両方の関係を返します。私は関係を持つプロパティを添付できることを知っています。しかし、再び、私はそのための暗号構文を知りません。
Neo4jは初めてです。どんな提案でも本当に素晴らしいでしょう!
ありがとう!
このクエリで元のグラフの関係を削除しました:
START n=node(*)
MATCH (n)-[rel:HAS_ROLE]->(r)
WHERE n.name='Tamil' AND r.name='tester'
DELETE rel
見つけた。関係がプロパティを持つように変更しました。このような:
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'developer'
CREATE (a)-[r:HAS_ROLE {id: xyz}]->(b)
RETURN r
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'tester'
CREATE (a)-[r:HAS_ROLE {id: abc}]->(b)
RETURN r
次に、以下のコードは指定された関係を削除しました。
CYPHER 1.9 START a = node:node_auto_index('name:Tamil')
MATCH a-[r:HAS_ROLE]-()
WHERE r.id = abc
DELETE r;
これが正しい方法であるかどうかはわかりません。しかし、それは機能します。