8

在 cypher 中怎么可能有这样的查询:“返回所有 anna 关注但不关注任何人的人”?

在下面(我在查询后明确了起始节点的 id)“r 为空”部分似乎不起作用:

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.

不起作用我的意思是:尽管应该有一些结果,但我没有得到任何结果。

4

1 回答 1

18

match如果它不存在,它就不是模式。match是为了找东西,不是为了找东西。您可以将这样的谓词放入where子句中:

START a=node({id}) 
MATCH (a)-[:follows]->(b)
WHERE not(b-[:follows]->()) 
RETURN b
于 2013-04-08T01:10:38.787 回答