在cypher中如何进行如下查询:
“返回所有安娜追随的人,而不追随任何人”?
在下面的代码中(在查询后我清楚了起始节点的ID的情况下),“r为null”部分似乎不起作用:
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.
By无效,我的意思是:尽管应该有一些结果,但我没有任何结果。
最佳答案
如果该模式不存在,则不会match
一个模式。 match
用于查找事物,而不是用于未找到事物。您可以将这样的谓词放入where
子句中:
START a=node({id})
MATCH (a)-[:follows]->(b)
WHERE not(b-[:follows]->())
RETURN b