Cypher查询问题

时间:2013-11-26 17:25:42

标签: neo4j cypher

我正在尝试在两个节点rn之间找到关系m,并删除该关系。这是我尝试过的:

 START n=node:uid(uid = 'f9c81808-976d-4d38-8038-76bb55463b3e')
 WHERE HAS (m.uid) AND m.uid='84cfdbd1-33f1-44d5-9692-9b0663887973'
 MATCH (n)-[r:attachedTo]-(m)
 DELETE r

任何想法如何解决这个问题?

我收到以下错误:expected return clause

3 个答案:

答案 0 :(得分:2)

正确的查询是:

START n=node:uid(uid = 'f9c81808-976d-4d38-8038-76bb55463b3e')
MATCH (n)-[r:attachedTo]-(m)
WHERE HAS (m.uid) AND m.uid='84cfdbd1-33f1-44d5-9692-9b0663887973'
DELETE r

因为WHERE子句位于MATCH子句之后,请查看documentation

答案 1 :(得分:1)

由于您似乎已将您的节点编入索引uid,您应该从该索引获取两个节点,然后匹配它们之间的关系

START n=node:uid(uid='f9c81808-976d-4d38-8038-76bb55463b3e'), m=node:uid(uid='84cfdbd1-33f1-44d5-9692-9b0663887973')
MATCH n-[r:attachedTo]-m
DELETE r

答案 2 :(得分:0)

我不清楚你为什么要这样做;

    n=node:uid(uid = 'f9c81808-976d-4d38-8038-76bb55463b3e') 

但我认为以下查询示例可能对您有所帮助。

    START n=node(*), m=node(*)
    match (n)-[r]->(m)
    where has(n.name) and has(m.name) and n.name='Running' and m.name = 'Photo'
    delete r