は、私は、ユーザーのノードPOSTED_BYあるアイテムのノードを、持って動作するようには思えません。さらに、アイテムは0個以上のユーザノードによってLIKEDされてもよく、0個以上のコメントがアイテムノードのPOSTED_INであってもよい。私がする必要がどのような複数のオプションMATCHは
特定のアイテムのノード(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を追加するために、クエリを変更:これにより
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)とコメント(コメント)の両方のために間違っています。彼らは "積み上げられている"ように見えます。だから、Likesが実際に3だった場合、好き嫌いとコメント数はどちらも6として返されます。私がここで間違っていることに関するヒントは?ありがとう。