2014-04-21 4 views
1

필자의 경우 노드는 하나 이상의 관계가 similar 인 관계로 연결됩니다. 이 관계에는 두 개의 속성 fldNamevalue이 있습니다.Neo4J : 관계 속성으로 그룹화 된 노드를 반환 할 쿼리?

(x)-[r:similar {fldName:'e-mail', value: '[email protected]' }]->(y) 
(x)-[r:similar {fldName:'phone', value: '123-45-67' }]->(y) 
(q)-[r:similar {fldName:'e-mail', value: '[email protected]' }]->(p) 
(q)-[r:similar {fldName:'phone', value: '891-23-45' }]->(p) 
(s)-[r:similar {fldName:'e-mail', value: '[email protected]' }]->(t) 

질문 : 예를 들어없이이 쿼리를 작성하는

group 1: x,y; number of relations: 2 
group 2: q,p; number of relations: 2 
group 3: s,t; number of relations: 1 

2)가 가능 : 다음 별도의 그룹 결과를 반환하는 쿼리를 무엇

1) 관계 속성의 선험적 지식?

답변

0

달성하려는 목표에 맞게 라벨을 사용하는 것이 좋습니다. 다음과 같이 데이터베이스를 채울 수 :

여기
merge (:x)-[:similar {fldName:'e-mail', value: '[email protected]' }]->(:y) 
merge (:x)-[:similar {fldName:'phone', value: '123-45-67' }]->(:y) 
merge (:q)-[:similar {fldName:'e-mail', value: '[email protected]' }]->(:p) 
merge (:q)-[:similar {fldName:'phone', value: '891-23-45' }]->(:p) 
merge (:s)-[:similar {fldName:'e-mail', value: '[email protected]' }]->(:t) 

당신이 레이블의 X, Y, Q, P, S와 T로 노드를 만들 것입니다.

당신이 그룹은 다음과 같은 쿼리 결과는 수

MATCH (x)-[r:similar]->(y) 
RETURN labels(x), labels(y), count(r) as relCount 

는 결과에 대한 Neo4j console를 참조하십시오.

+0

자세한 답변을 보내 주셔서 감사합니다. 아아, 단일 값이 아닌 관계 속성 쌍 ('fld, val)'을 그룹화해야하기 때문에 레이블을 사용할 수 없습니다. – DarqMoth