編輯 - 吉姆的回答 吉姆有這個問題的更好的答案,任何人發現這個問題應該使用。
MATCH (rootTk:Toolkit {level: "Level 0"})<-[:PrimaryChild*0..]-(tk:Toolkit)<-[:visitTo]-(hit:PageHit)
RETURN rootTk.title as Title,COUNT(hit.id) as Hits
它使用0長度(到無窮大)路徑匹配使PrimaryChild關係成爲非必需的。
原來的答案
MATCH (rootTk:Toolkit {level: "Level 0"})<-[:PrimaryChild*]-(tk:Toolkit)<-[:visitTo]-(hit:PageHit)
RETURN rootTk.title, COUNT(hit)
正如你說,這將返回命中只有TK節點上,以獲得根,我認爲,這將工作點擊:
MATCH (rootTk:Toolkit {level: "Level 0"})
OPTIONAL MATCH (rootTk)<-[:PrimaryChild*]-(tk:Toolkit)<-[:visitTo]-(hit:PageHit)
WITH rootTk, COUNT(hit) as hits
OPTIONAL MATCH (rootTk)<-[:visitTo]-(rootHit:PageHit)
RETURN rootTk.title, hits + COUNT(rootHit)
它以兩個階段執行計數並添加值,我不確定是否有辦法在單個階段執行此操作而無需修改模型。
我想你可以做到這一點,但你可能會爆炸:
MATCH (rootTk:Toolkit {level: "Level 0"})
OPTIONAL MATCH (rootTk)<-[*]-(hit:PageHit)
RETURN rootTk.title, COUNT(hit)
謝謝。第一個選項奏效。 – 2014-09-26 17:53:08