密码查询中的“无关系”

时间:2013-04-07 22:46:06

标签: neo4j cypher

如何在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.

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

1 个答案:

答案 0 :(得分:18)

如果模式不存在,它将不会matchmatch用于查找内容,而不是查找内容。您可以将这样的谓词放入where子句:

START a=node({id}) 
MATCH (a)-[:follows]->(b)
WHERE not(b-[:follows]->()) 
RETURN b