2013-04-07 32 views
8

密碼中如何可能有如下查詢: 「返回anna跟隨的所有人誰不跟隨任何人」?密碼查詢中的「無關係」

在下面的(在那裏我查詢後明確了起始節點的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. 

通過不工作我的意思是:我沒有得到任何結果,雖然應該有一些。

回答

18

它不會match一個模式,如果它不存在。 match是查找東西,而不是而不是查找東西。你可以把這樣一個謂詞放到where子句中:

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