2017-05-22 1 views
1

CSV를 가져올 때 이름 노드에 여러 정보 열을 포함 할 수 있습니까? 예를 들어, Name은 John Doe, Company, Position은 영업 대표, California는 한 노드에 위치합니다. 그렇다면 업로드 중에 Cypher의 단일 이름 노드에서 해당 정보를 병합하는 방법에 대한 제안 사항이 있습니까? 위치, 주, 카운티, 전화 번호 등의 정보 열이 있다고 가정 해 보겠습니다. 지금까지 내가 생각해 낼 수 있었던 것은 이름과 그/그녀가 일하는 회사와의 관계입니다.노드 당 여러 개의 데이터 가져 오기 열이 있습니까?

LOAD CSV WITH HEADERS FROM 'FILE:///company_name.csv' AS line 
MERGE (C:Company {Company: line.Company }) 
MERGE (N:Name {Name: line.Name }) 
MERGE (C)<-[:works_for]-(N); 
+0

저를 용서하십시오. 그러나 당신이 성취하고자하는 것은 내게 불분명합니다. 동일한 노드 (이름 대신 Person이어야 할 수도 있음)에 여러 속성을 원하면 MERGE (p : Person {Name : line.Name, Phone : line.Phone})로 구분하여 지정해야합니다. 유용한 것은 LOAD를 수행하기 전에 노드에 고유 한 특성을 갖는 고유 한 제한 조건을 작성하는 것입니다 (예 : CREATE CONSTRAINT ON (p : Person) ASSERT p.personID IS UNIQUE; –

+0

사과, 여러 속성을 말하려고했습니다. CREATE CONSTRAINT ON 접근 방식을 시도해 보겠습니다. – AngryAsianMan

답변

1

가장 좋은 방법은 고유 키 값에 MERGE의 노드를 일치/생성 한 후 ON CREATE SETON MATCH SET을 사용하는 것입니다. 동일한 ID에 해당하고 설정하는 값 중 일부는 다음이 발생합니다 해당 행에 다른 CSV 파일에 여러 행이있는 경우

LOAD CSV WITH HEADERS FROM 'FILE:///company_name.csv' AS line 
MERGE (C:Company {Company: line.Company }) 
MERGE (N:Name {Name: line.Name }) 
ON CREATE SET 
    N.Position = line.Position, 
    N.Location = line.Location, 
    N.Country = line.Country, 
    N.Phone = line.Phone 
ON MATCH SET 
    N.Position = line.Position, 
    N.Location = line.Location, 
    N.Country = line.Country, 
    N.Phone = line.Phone 
MERGE (C)<-[:works_for]-(N); 

는 또한 단일 노드에서 모든 것을 설정할 수 있지만, 데이터베이스의 다중 노드

LOAD CSV WITH HEADERS FROM 'FILE:///company_name.csv' AS line 
MERGE (C:Company {Company: line.Company }) 
MERGE (N:Name {Name: line.Name, Position: line.Position, Location line.Location, Country: line.Country, Phone: line.Phone }) 
MERGE (C)<-[:works_for]-(N); 
+0

난 그냥로부터 헤더 로드 CSV를 시도했습니다 'FILE : ///company1.csv를'라인 MERGE AS (C : 회사 {회사 : line.Company}) ON CREATE SET C.Partner = line.Partner C.Product = line.Product C.Partner_Value = line.Partner_Value C.Partners = line.Partners C.Customers = line.Customers 는 MATCH ON C.Partner = line.Partner C.Product = 줄을 SET .Product C.Partner_Value = line.Partner_Value C.Partners = line.Partners 오류 잘못된 입력 '.': 예상 'o/O', 'r/R '또는'a/A '(행 5, 열 2 (오프셋 : 188)) "C.Product = line.Product" ^ – AngryAsianMan

+0

다른 속성 사이에 쉼표가 누락 된 것처럼 보입니다. –

관련 문제