まず、私がNeo4jの新機能であることを指摘してください。もっと良い方法があれば教えてください。Neo4j - ノードとの完全な関係
第二に、どのように私はまた、見つけることができます。
// QUERY
if(!empty($_SESSION['uid'])) {
$uid = $_SESSION['uid'];
$query = 'MATCH (cu:User)
WHERE cu.id = "'.$uid.'"
WITH cu
MATCH (p:Painting)<-[:PAINTED]-(u:User)-[:LIVES_IN]->(l:Location)
WHERE (p.slug) = "'.$slug.'"
RETURN p,u,l,
EXISTS((cu)-[:LIKES]->(p)) as liked,
EXISTS((cu)-[:FOLLOWS]->(u)) as followed,
SIZE((:User)-[:LIKES]->(p)) as total_likes,
SIZE((:User)-[:FOLLOWS]->(u)) as total_follows
LIMIT 1';
} else {
$query = 'MATCH (p:Painting)<-[:PAINTED]-(u:User)-[:LIVES_IN]->(l:Location) WHERE (p.slug) = "'.$slug.'"
RETURN p,u,l,
SIZE((:User)-[:LIKES]->(p)) as total_likes,
SIZE((:User)-[:FOLLOWS]->(u)) as total_follows
LIMIT 1';
}
は、だから今私は、ユーザーの可用性に応じて2つのクエリを実行していますよ。私はこれを行うためのより良い/より効率的な方法がなければならないと想像しなければならないが、少なくとも現時点では機能する。
Total_LikesとTotal_Followsをどのようにすべきかを明確にすることはできますか?私たちはすでに絵画の好きな人数と、その人に従う人数を返しています。この特定のユーザーが好きな絵の数と、この特定のユーザーが従う他の人の数を取得しようとしていますか?それとももっと何か? – InverseFalcon
total_likes =絵の総数(p) total_follows =アーティストの合計()0/1現在のユーザーがpを好きかどうかを確認してください(0 /いいえ1) 0/1現在の状態を確認してくださいユーザーはこれに従っています(0 /いいえ1) – Grant
この "現在のユーザー"のために、彼らは絵を気に入ってペインターに従ったかどうかを知りたいのですか?現在のユーザーをどのように見つけますか(IDで名前で?)この「現在のユーザー」を説明のクエリに追加できますか? – InverseFalcon