2014-11-21 156 views
2

我是neo4j的新手,目前使用Neo4jphp庫與密碼來存儲和檢索節點。我的邏輯很簡單。我想得到一個節點(post),並用它們的評論者(標籤用戶的節點)獲得它的所有喜歡(喜歡的數量)和所有評論(節點),並且能夠解析php數組中的ResultSet,以便稍後將其編碼爲JSON。使用neo4jphp獲取用戶帖子,喜歡和評論

我使用的暗號聲明:

MATCH (user:User)-[:POSTED]->(post) WHERE post.UserID = '13' AND id(post)=106 OPTIONAL MATCH()-   [rel:LIKES]-(post) OPTIONAL MATCH (post)-[:HAS]-(comment:Comment)<-[:COMMENTED]-(commenter:User) RETURN user, post,count(rel) AS Likes, rel, comment, commenter 

匹配正確檢索所有節點(這個職位具有雖然沒有喜歡):

Neo4j http://bookintransit.com/kkk.PNG

我如何得到正確的使用該庫表示此圖表? 另外請注意,爲了簡單起見,我在本例中檢索了一個帖子節點(id:106)。但是我想在我的應用程序中使用代碼時檢索帖子列表。

這是PHP代碼我使用:

$queryString = "MATCH (user:User)-[:POSTED]->(post) WHERE post.UserID = {qUser} OPTIONAL MATCH()-[rel:LIKES]-(post) OPTIONAL MATCH (post)-[:HAS]-(comment:Comment)<-[:COMMENTED]-(commenter:User) RETURN user, post,count(rel) AS Likes, rel, comment, commenter ORDER BY post.TS DESC LIMIT ".$NumberOfPosts; 
     $query = new Everyman\Neo4j\Cypher\Query($client, $queryString, array('qUser' => $UserID)); 
     $result = $query->getResultSet(); 
     if(count($result)>0){ 
      foreach($result AS $row){ 

       // How do I get the correct graph in a php array to parse to json 
      } 

回答

1

我認爲你正在尋找這樣的事情。查找用戶的所有帖子。每個帖子可以選擇查找所有的評論和喜歡每個;將評論和相關用戶放入一個集合中;計算喜歡的數量;並將其全部寄回。

match (u:User {name: "13})-[:POSTED]-(p:Post) 
with p 
optional match (p)-[:HAS]-(c:Comment)-(u:User) 
optional match (p)-[:HAS]-(l:Like) 
with p 
, [c, u] as comment 
, count(l) as likes 
return p, collect(comment), likes 
1

隨着neo4jphp我不知道是否可行。順便說一句,可以用neoclient

NeoClient使用響應格式化處理圖形結果數據的內容,讓你在結果得到反對你的圖形看起來像您發佈的圖像中:

$result = $client->sendCypherQuery($yourQuery, $parameters); 

$posts = $result->getNodes('Post'); 
$post = $result->getSingleNode('Post'); 
$comments = $post->getInboundRelationships('HAS'); 
foreach ($comments->getEndNode() as $comment) { 
    echo $comment->getProperty('text'); 
    $user = $comment->getSingleRelationship('COMMENTED')->getEndNode(); 
    echo $user->getProperty('username'); 
} 

,你可以看,結果集只是你的迴應的圖形表示,你只需要瀏覽它。

相關問題