2017-12-14 1 views
0

특정 레이블 (예 : PERSON)에 대해 Neo4j에 CSV를로드 할 수 있으며 노드는 PERSON 레이블 아래에 만들어집니다. "증오 나는이 쌍 따라서"사랑 "을해야 생성 된 관계 사이의 관계를 만들려는Neo4j가 CSV를로드하여 동적 관계 유형을 만듭니다.

name1, relation, name2 
a, LOVE, b 
a, HATE, c 

:

나는 또한 사람 사이의 관계를 설명하기 위해 또 다른 CSV를 가지고 것 같습니다 ", 등, 대신에 아래의 스크립트에 의해 수행으로 단단한 RELATION의 : 이렇게

load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p 
match (a:PERSON) where a.name=p.name1 
match (b:PERSON) where b.name=p.name2 
merge (a)-[r:REL {relation: p.REL}]->(b) 

, 나는 REL 타입 관계의 무리가 있지만 LOVE - 그리고 HATE -relations .

다른 말로하면 스크립트의 마지막 줄에있는 REL을 동적으로 할당하고 싶습니다. 그런 다음 Neo4j API를 사용하여 모든 관계 유형을 질의 할 수 있습니다.

이것이 가능합니까?

답변

1

당신은 APOC library 다음 사용 apoc.merge.relationship

apoc.merge.relationship (은 StartNode, relType 설치할 수 있습니다 {키 값, ...}, {키 값, ...}, 말단 노드를) - 동적 유형과의 병합 관계

load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p 
match (a:PERSON) where a.name=p.name1 
match (b:PERSON) where b.name=p.name2 
call apoc.merge.relationship(a,p.REL,{},{},b) yield rel 
return count(*); 
+0

위대한! 그것은 작동합니다! – TaylorR

관련 문제