如何在cypher中进行如下查询: “让安娜跟随的所有人都不跟随任何人”?
在下面(我在查询后明确了起始节点的id)“r为空”-part似乎不起作用:
START o=node({id})
MATCH (a)-[:follows]->(b)-[r]->(c)
WHERE a.name="anna" and r is null
RETURN b
现在,“跟随”是我唯一的关系。 但也
START o=node({id})
MATCH (a)-[:follows]->(b)-[:follows]->(c)
WHERE a.name="anna" and c is null
RETURN b* does not work.
通过不起作用我的意思是:虽然应该有一些,但我没有得到任何结果。
答案 0 :(得分:18)
如果模式不存在,它将不会match
。 match
用于查找内容,而不是不查找内容。您可以将这样的谓词放入where
子句:
START a=node({id})
MATCH (a)-[:follows]->(b)
WHERE not(b-[:follows]->())
RETURN b