2013-03-23 2 views
0

PHP를 통해 neo4j에 액세스하고 있습니다. 저는 이것에 익숙하지 않으며 간단한 경우를 푸는 가장 좋은 방법을 알고 싶습니다.Neo4j from PHP, 노드가 존재하지 않는지 확인하십시오.

특정 노드가 이미 존재하는지 (auto_index 비교를 기반으로) 존재하는지 확인하고, 존재한다면 일부 속성을 설정하고, 존재하지 않는 경우 일부 속성으로 만듭니다.

PHP를 통해 Cypher 쿼리를 사용하고 있습니다.

고마워요.

답변

3

이를 위해 사이퍼를 사용할 수 있습니다. (선호하는 방법) http://docs.neo4j.org/chunked/milestone/query-create-unique.html#create-unique-create-node-if-missing 또는 사용의 작곡가 사이퍼 쿼리는 REST 인터페이스를 통해 실행 여기에 문서 될 수있다 (당신은 PHP에서 액세스 할 경우에 사용해야한다.) : http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html#rest-api-send-queries-with-parameters

빠른 플러그인 : 저는 Cypher 쿼리를 처리하는 Neo4jPHP의 저자입니다. 작곡가 (선호하는 방법)를 사용하거나 github에서 직접 가져올 수 있습니다 (https://github.com/jadell/neo4jphp)

+0

감사합니다 조쉬, 내가 사용하는 경우없는 경우 드 크레타 독특한 목적지 노드 (하나 (내가 뭔가를 잘못하고 있어요 확실히) 내가 만들 필요가있다이 문제) 여러 번 만들어졌습니다. 경우는 다음과 같습니다, 나는 사람의 노드를 가지고, 그 다음에 회사 노드를 만들기 전에 회사 관계에 대한 회사와 연결하고 싶습니다. 이미 존재하는지 확인해야합니다 (일부 ID는 company_id와 같은 것입니다. = XX). 다시 한 번 감사드립니다. – user2201662

0

이것은 사이퍼와 함께 고유 노드를 생성하는 Neo4j 문서에서 직접 얻었습니다. 특정 고유 특성을 가진 노드가이 L 존재하면 다시 작성되지 않습니다. 여기에 링크 http://docs.neo4j.org/chunked/stable/rest-api-unique-indexes.html

에게의 취득 또는 고유 노드를 (생성)

이미 고유 인덱스에 존재하지 않는 경우 노드가 생성됩니다 만들 수 있습니다.

예 요청

POST http://localhost:7474/db/data/index/node/people?uniqueness=get_or_create 
Accept: application/json; charset=UTF-8 
Content-Type: application/json 
{ 
    "key" : "name", 
    "value" : "Tobias", 
    "properties" : { 
    "name" : "Tobias", 
    "sequence" : 1 
} 
} 
관련 문제