0

Neo4jPHP を使用して、「マスター」ノード (A) に接続されているすべてのノードの配列を提供するスニペットを作成します。ノードは次のように接続します。

  A -> B
  B -> C
  C -> D
  C -> E
  B -> F

これは、neo4jPHP を使用して記述したコードです。

$client = new Everyman\Neo4j\Client();
$querystring="MATCH path=(n {gid:'58731'})-[:contains*]-(z) RETURN ([x in nodes(path) | x.id]) as names";
$query=new Everyman\Neo4j\Cypher\Query($client,$querystring); 
$result=$query->getResultSet();

foreach($result as $resultItem){
    $resultArray[] = $resultItem['n'];
}   
print_r($resultArray); // prints the array

問題は、$resultArray がマスター ノードに関連するノードを繰り返し格納することです (ここで説明したように:マスター ノードに関連するすべてのノードを取得しようとすると、neo4j で奇妙な動作が発生します) 。

私の質問は次のとおりです。neo4jPhp を使用して、「マスター」ノードに関連するすべてのノードを一度だけ含む配列を取得する方法はありますか? このようなもの:

 $distinctNodes = [B,C,D,E,F]

ありがとう。

4

1 に答える 1

1

このクエリは、配列を直接返す必要があります。

MATCH (n {gid:'58731'})-[:contains*1..]->(z) RETURN COLLECT(DISTINCT z.id) as names
于 2015-01-15T21:11:33.007 に答える