에서
//JUST CREATED A GAME NODE called $GameNode
//let's search if the referee exists
$queryString = "START n=node({nodeId}) ".
"MATCH (n)<-[:REFEREED]-(x)".
"WHERE x.name = {name}".
"RETURN x";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString, array('nodeId' => 0, 'name' => $referee['referee_name']));
$result = $query->getResultSet();
$referee = 0;
if (count($result)==0)
{
//create referee as he/she does not exist
$referee= $client->makeNode();
$referee->setProperty('name', $referee['referee_name'])
->save();
}
else
{
//let's point the referee to this law case also
$referee = $client->getNode($result['x']->getProperty('id'));
}
$referee->relateTo($GameNode, 'REFEREED')
->save();
많은 감사이 작동하지만 왕복을 많이 수행해야한다.
에만이 작업 사이퍼를 사용할 수 있습니다
Neo4j 1.9 사용 CREATE UNIQUE
START root=node({nodeId})
CREATE UNIQUE (root)<-[:REFEREED]-(referee {name: {name}})
RETURN referee
Neo4j 2.0 당신이 MERGE
MERGE (referee:Referee {name: {name}})
RETURN referee
은 또한 당신의 식별자에 대한 더 나은 이름을 사용하십시오 사용할 수 있습니다 .
대답은 다음과 같습니다. http://stackoverflow.com/questions/29059575/neo4j-php-retrieve-node – edoceo