我有一個項目節點,這是POSTED_BY用戶節點。此外,Item可能被零個或多個用戶節點LIKED,零個或多個註釋可能是POSTED_IN Item節點。與COUNT的多個可選匹配似乎不工作
我需要做的是查詢特定的項目節點(給出的ID),和檢索:
- 項目節點本身
- ,該項目是POSTED_BY
- 用戶節點誰喜歡項目節點的用戶數量的計數
- 評論次數的計數POSTED_IN項目節點
如果我嘗試查詢只是1-3,現在排除4,我的查詢看起來是這樣的:
MATCH (i:Item {id: 'ByvIzUdbZ'})-[:POSTED_BY]->(u:User)
OPTIONAL MATCH (u2:User)-[:LIKES]->(i)
RETURN i, u, COUNT(u2);
這將返回項目節點,用戶和喜歡準確計數。
現在,以適應第4點,我修改查詢並增加另一個可選的匹配,如下圖所示:
MATCH (i:Item {id: 'ByvIzUdbZ'})-[:POSTED_BY]->(u:User)
OPTIONAL MATCH (u2:User)-[:LIKES]->(i)
OPTIONAL MATCH (comment:Comment)-[:POSTED_IN]->(i)
RETURN i, u, COUNT(u2), COUNT(comment);
有了這一點,但是,對於用戶(U2)和評論數(評論)是不正確的。他們似乎正在「加起來」。所以,如果喜歡實際上是3,喜歡和評論計數都返回爲6.任何提示我在這裏做錯了嗎?謝謝。