Ответ 1
Я удалил отношение на исходном графике с помощью этого запроса:
START n=node(*)
MATCH (n)-[rel:HAS_ROLE]->(r)
WHERE n.name='Tamil' AND r.name='tester'
DELETE rel
Скажем, у меня есть пользователь:
CREATE (n { name: 'Tamil' })
и 2 роли:
CREATE (n { name: 'developer' } )
CREATE (n { name: 'tester' } )
Затем я устанавливаю связь между пользователем и каждой из двух ролей.
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
Но он возвращает оба отношения. Я знаю, что я могу привязать свойство к отношениям. Но, опять же, я не знаю синтаксиса cypher для этого.
Я новичок в 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;
Я не уверен, что это правильный способ сделать или нет. Но это работает.