저는 neo4j를 처음 사용하고 있으며 현재 노드를 저장하고 검색하기 위해 cypher와 함께 Neo4jphp 라이브러리를 사용하고 있습니다. 내 논리는 상당히 간단합니다. 노드 (게시물)을 가져 와서 좋아하는 사람 (좋아하는 사람의 개수)과 모든 주석 (노드)을 주석 작성자 (레이블 사용자의 노드)와 함께 가져 와서 PHP 배열의 ResultSet을 나중에 인코딩 할 수 있도록 구문 분석 할 수 있어야합니다. Json.neo4jphp를 사용하여 좋아요 및 댓글과 함께 사용자 게시물을 얻을 수 있습니다.
내가 사용 사이퍼 문은 : 나는 올바른 어떻게합니까
Neo4j http://bookintransit.com/kkk.PNG
:
이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
경기가 (이 게시물은 더하지만 좋아이 없습니다) 제대로 모든 노드를 검색 라이브러리를 사용하는이 그래프의 표현? 또한이 예제에서는 간단히하기 위해이 예제에서 하나의 사후 노드 (id : 106)를 검색했습니다. 하지만 응용 프로그램에서 코드를 사용할 때 게시물 목록을 검색하고 싶습니다.
$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
}