2017-11-22 18 views
0

나는 neo4j에 대해 배우고 있으며 다음 질문을 가지고 있습니다.atribute와 관계 만들기 - Neo4j

두 개의 노드 그룹이 있습니다. 첫 번째 노드는 ID와 작업자 이름이있는 작업자라고합니다.

반면에 id와는 별도로 다음과 같은 특성을 갖는 제품이라는 노드 그룹이 있습니다. 가격, 이름.

나는 그가 조작하려고하는 제품에 작업자를 연관시키는 "조작"이라는 관계를 만들고 싶습니다.

나는 이에 대해 trabajaensector.csv id와 작업자를 id로 조작하는 제품과 함께 관련시키는 파일을 가지고 있습니다.

은 형태 :

요약
id1,id2,sector 
1,1,fruteria 
2,2,fruteria 
3,2,fruteria 
4,7,panaderia 
5,5,fruteria 
6,5,fruteria 
7,9,bebidas 
8,9,bebidas 
9,10,bebidas 
10,10,bebidas 
11,3,pescaderia 
12,8,panaderia 
13,7,panaderia 
14,9,bebidas 
15,10,bebidas 
16,4,pescaderia 
17,2,fruteria 
18,4,pescaderia 

, ID1 (노동자) ID2 (제품을) 조작과 그 분야는 "fruteria/pescaderia/panaderia 오 bebida"

이 내 CQL입니다입니다 관계 조작 만들기 : 여기

LOAD CSV WITH HEADERS FROM "file:///trabajaensector.csv" AS csvLine 
MATCH(w:Worker),(p:Product) where w.id= toInt(csvLine.id1) and p.id= 
toInt(csvLine.id2) create (w)-[sect:trabajasec]->(p) return sect 

내 문제를 관계는 분명히 부문 w를 나타내는 그러나 나는 그 세 번째 "분야"데이터를 손실하고, 잘 만드는 여기에서 작업자는 해당 제품을 조작하여 작동합니다.

예를 들어, 사과를 조작하는 Juan이라는 작업자의 관계는 변수/속성 "fruteria"또는 물고기 "pescaderia"와 관계가 있어야합니다.

해당 데이터를 관계에 올바르게 포함하고 복구하는 방법에 대한 아이디어가 있습니까?

답변

2

당신은 trabajasec 관계에 sector 속성을 추가 할 수 있습니다

LOAD CSV WITH HEADERS FROM "file:///trabajaensector.csv" AS csvLine 
MATCH (w:Worker), (p:Product) 
WHERE w.id = TOINT(csvLine.id1) AND p.id = TOINT(csvLine.id2) 
CREATE (w)-[sect:trabajasec {sector: csvLine.sector}]->(p) 
RETURN sect; 

위의 쿼리를 사용하려면 먼저 이전 LOAD CSV 결과로 만들어진 trabajasec 관계를 삭제해야합니다.