2014-10-07 5 views
0

Neo4j에서 루프 목록에서 노드의 목록을 반환합니다. 해당 ID를 읽었으며 모든 노드에 대해 (이 예에서는 NODE_ID = 3071)을 이용하여 다음과 같이Neo4J가 url에서 id 관계를 가져옵니다.

http://localhost:7474/db/data/node/3071/relationships/out 

ID의 지정 값에 대한 JSON 출력()이다

[{'end': 'http://localhost:7474/db/data/node/3070', 
'extensions': {}, 
'self': 'http://localhost:7474/db/data/relationship/11101', 
'property': 'http://localhost:7474/db/data/relationship/11101/properties/{key}', 
'type': 'IS', 'properties': 'http://localhost:7474/db/data/relationship/11101/properties', 
'data': {}, 
'start': 'http://localhost:7474/db/data/node/3071'}] 

우리는 우리의 노드 (3071)의 결과는 (3070)에 연결되어 있는지 관찰 그러나 단순한 형식이 아니라 난독 화 된 형식으로되어 있습니다. 정규식을 사용하지 않고이 3070 (연결된 노드의 ID)을 어떻게 얻을 수 있습니까?

답변

1

대답은 당신이 아니라고 생각합니다.

여기에 귀하의 특정 REST 쿼리가 관계를 묻습니다. 노드 ID는 노드의 특성이며, 관계를 요구할 때 제공되지 않을 것입니다.

If you ask for the node

다음 JSON을 사용하여 서버가 응답하는지이 포함됩니다 :

"metadata" : { 
    "id" : 4147, 
    "labels" : [ "Person" ] 
} 

을하지만 그것은 단지 노드에 대한 정보를 가져 오는에 적용됩니다.

이전 버전을 사용하고있을 수도 있습니다. 동일한 REST 호출에 대한 current documentation에서이 메타 데이터 오브젝트가 관계 ID로 표시 될 것으로 예상되지만 서버의 샘플 응답에는 포함되지 않았습니다.

startend에 의해 기술 된 URL을 가져 오기 위해 REST API 사용을 고려하고, 당신은 id 속성이 metadata을 포함 JSON을 다시 얻을 것이다 - 그 정규 표현식없이, 당신의 대답이다.

편집 : 마이클 기아 아래에서 알 수 있듯이 - 당신은 간단한 사이퍼 쿼리를 실행하여 당신은 당신이 원하는 것을 얻을 수있는 거리에 JSON에서 단계 기꺼이하는 경우 :

MATCH (n)-->(other) WHERE id(n) in {ids} RETURN id(other),other 

가에 other PARAM 지정을 {"ids":[3071, 3072, 3073]}이되어야합니다. 그러나 다른 솔루션 (노드를 개별적으로 가져 오는 것)과 같이 추가 호출이 필요합니다. 사건 관계에 대한 질의에 대한 응답에서 정보를 얻을 수 없습니다.

+1

나는 실제로 당신이하려고하는 것을하기 위해 Cypher를 사용할 것이다 :'MATCH (n) -> (other) {ids}의 id (n) RETURN id (other), 다른'params는' { "ids": [3071, 3072, 3073]} –

+0

이것을 포함하도록 수정했습니다. OP가 인시던트 관계에 대한 쿼리에서이 정보를 얻으려는 것 같았 기 때문에 원래의 질문이 나를 조금 던 졌다고 생각합니다. 노드 ID를 얻는 방법은 여러 가지가있을 수 있습니다 (단, 모두 추가 호출이 필요함) – FrobberOfBits

관련 문제