ここでは私のCYPHERクエリです:オプションのマッチのNeo4j
MATCH (a : User), (user : User {username : 'lebron'})
WHERE a.phoneNumber IN ['757488374748','+9035115','+90390320303']
AND a.username <> 'lebron'
OPTIONAL MATCH (user)-[f:FOLLOWS]->(a), (a)-[p : POSTS]->(b)
RETURN DISTINCT COLLECT(b.postId) AS postId, a.username AS membername,
f.followRequestStatus AS followRequestStatus, user.private AS userPrivate;
「」ノードがユーザノードである、「」写真をポストすることができ、かなり多くのInstagramのように、他のユーザーの写真のように、他のユーザーに従ってください。ここで起こっているのは、ノードaとノードbとの間のリレーション - [p:POSTS]が存在する場合のみ、followRequestStatus(f.followRequestStatus)が正しくなることです。関係 'p'が存在しない場合、関係fが存在する場合でも、関係> 'f'に対してもnullを返します。
あなたの実際の質問は私にはあまり明確ではありません。 followRequestStatusの正しい出力を実装する方法を尋ねていますか?そして、 'b'は新しく導入された変数(' a'からの投稿)なので、これは 'a'が何かを投稿した場合にのみfollowRequestStatusを出力していることを修正しました(postIdsのコレクションでは検出できませんでした空である)? – InverseFalcon
followRequestStatusは、aが何かを投稿したかどうかにかかわらず、null、0または1でも構いませんが、(a) - [p:POSTS] - >(b)たとえ何らかの値があっても、followRequestStatusはnullとして出力されます。 –
さて、それを得ました。私はあなたの説明を問題ではなく誤解していました。 – InverseFalcon