Kullanıcıların bir gönderiye sahip olabileceğini düşündüğüm bir grafik var, ayrıca bir gönderiye sahip bir arkadaşınız olabilir, arkadaş takip edilebilir veya olmayabilir.
Kullanıcıların ve takip ettiği arkadaşların tüm yayınlarını nasıl sorgulayabilirim?
Bu çalıştı:Java Neo4j Cypher Veya Maç
" MATCH (u1:User)-[:POSTED]->(p1:Post)"
+ " WHERE u1.username =~ '"+user+"'"
+ " OPTIONAL MATCH (u3:User)-[:FOLLOWING]->(u2:User)-[:POSTED]->(p2:Post),"
+ " (u3:User)-[:FRIEND_OF]->(u2:User)"
+ " WHERE u3.username =~ '"+user+"' return u1.username, u1.name,"
+ "p1 ,u2.username, u2.name , p2";
ama bu sorgu, çiftleri döndürür bizim kullanıcı ve bir arkadaşım var diyelim.
frien bir gönderiye sahip ve kullanıcı iki, sorgu her MATCH için iki kez onun bir kez gönderir, sorgu da OPSİYONEL MATCH OPTIONAL MATCH sonucu döner.
exaplain ilerletmek için: (: Post) yineleme olmadan bu ilişkileri karşılamak ve tercihen tek sorgu ile
(u:User)-[:POSTED]->(p:Post)
(u:User)-[:FRIEND_OF]->(u2:User)
(u:User)-[:FOLLOWING]->(u2:User)-[:POSTED]->(p2:Post)
Bunlar ne tüm istediğim mesaj olduğunu mevcut ilişkilerdir.
neden aşağı oy? –