2014-06-08 2 views
3

여기서 neo4j 나머지 api를 사용하고 있습니다. 첫 번째 단계에서는 두 노드 사이에 얼마나 많은 관계가 있는지와 같은 정보를 수집하려고합니다.Neo4j 사이퍼는 두 노드 사이의 모든 관계를 표시하고 표시합니다.

샘플 : MATCH (n:Node {id: {parameter1}})-[r:someType]-(m:Node {id: {parameter2}}) RETURN COUNT(r)

그럼 I 이렇게 I는 상기 계산을 계산할 수 가장자리에 할당 된 모든 값을 수집하고 싶다. 두 개의 주어진 노드 사이에 모든 다른 유형의 관계와 속성이 필요합니다.

가능한 경우 단일 사이퍼로 처리하고 싶습니다.

답변

3

그럼 난 가장자리에 할당 된 모든 값을 수집하고자하는

MATCH (n:Node {id: {parameter1}})-[r:someType]-(m:Node {id: {parameter2}}) 
RETURN COUNT(r) AS count, COLLECT(r) AS rels 

주 당신에게 Relationship 개체의 컬렉션을 제공합니다 내가 반환에 collect(r) AS rels를 추가 한 변경된 유일한 것은, 이 노드들 사이에 레이블이 모두 someType 인 모든 모서리를 나타냅니다.

는 모든 유형의 모든 모서리를 얻으려면 :

MATCH (n:Node {id: {parameter1}})-[r]-(m:Node {id: {parameter2}}) 
RETURN COUNT(r) AS count, collect(r) AS rels ORDER BY labels(r) 

는 모든 유형의 모든 관계의 컬렉션을 반환하는 MATCH에서 라벨 요구 사항을 제거합니다. 라벨별로 컬렉션을 정렬하여 반환되는 관계 목록을 유형별로 정렬하여 "추후 계산"의 목적에 따라 필요에 따라 구분할 수 있습니다.

이 코드는 테스트되지 않았으므로 컬렉션에 레이블을 부를 수 있는지 100 % 확신하지 못했습니다. 그렇지 않은 경우 알려 주시면 대체 솔루션을 제공해 드리겠습니다.

+0

안녕하세요, 감사합니다. 여기 rels 배열 권리, 어떻게 자바 출력, 어떤 단서 neo4j 배열에 액세스 할 수 있습니까? –

+0

@SagiruddinMondal rels는 쿼리와 일치하는 모든 관계의 모음입니다. 그렇습니다. 다른 질문에 관해서는, "어떻게'Relationship' 컬렉션을 클래스의 객체들의 배열로 변환 할 수 있을지 물어 본다면, 그것은 매우 큰 질문입니다. 그렇게하기위한 당신의 전략은 매우 중요합니다. 전체적인 디자인 전략. 도메인 모델링에 대한 [이 튜토리얼] (http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded-entities.html)을 보면 알게되었습니다. – drewmoore

관련 문제