2017-05-22 47 views
1

導入csv時,Name節點上可能有多列信息嗎?例如,姓名是John Doe,公司,職位是銷售總裁,位於加利福尼亞等地,在一個節點上。如果是這樣,有關如何在上傳過程中將密碼合併到單個名稱節點中的建議?比方說,我有位置,州,縣,電話的信息列。到目前爲止,我所能夠想到的是他/她工作的公司的名稱和關係。每個節點的多個數據導入列?

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而不是Name),你可以用逗號分隔它們: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

最好的辦法是使用ON CREATE SETON MATCH SET創建/唯一鍵的值與MERGE節點匹配後。

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); 

另外,您可以在單個節點上設置好一切,但如果在您的CSV文件中對應於同一的身份和一些要設置的值都在這些行不同,那麼它會導致多行之後數據庫中有多個節點。

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

我剛剛嘗試過 從'FILE:///company1.csv'作爲行 MERGE(C:公司{公司:line.Company})加載了帶有標頭的CSV 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 匹配時 C.Partner = line.Partner C.Product =行.Product C.Partner_Value = line.Partner_Value C.Partners = line.Partners Error Invalid input'。':expected'o/O','r/R'或'a/A'(第5行,第2列(偏移量:188)) 「C.Product = line.Product」 ^ – AngryAsianMan

+0

看起來您錯過了不同屬性之間的逗號 –

相關問題