2017-05-31 14 views
0

2つのノード間のリレーションシップを作成しようとしていますが、何らかの理由でこれを行うことができません。2つのノード間にリレーションシップタイプを作成するneo4j

MATCH (C:Company {Company: 'Node1'}) 
MATCH (J:Company {Company: 'Node2'}) 
MERGE (C)-[:Partner]-(J); 

私は結果を得ています(変更なし、レコードなし)。

LOAD CSV WITH HEADERS FROM 'FILE:///company_info.csv' AS line 
MERGE (C:Company {Company: line.Company }) 
ON CREATE SET 
C.Partner = line.Partner, 
C.Product = line.Product, 
C.Partners = line.Partners, 
C.Customers = line.Customers 
ON MATCH SET 
C.Partner = line.Partner, 
C.Product = line.Product, 
C.Partners = line.Partners, 
C.Customers = line.Customers 

は私がC.Partner = line.Partnerは、パートナーのプロパティではありません関係タイプを作成したことを知っている:この関係を作成しようとする前に、私は次のCYPHERでCSVをアップロードしました。関係タイプを作成するために私がここで何をすることができるかに関する提案はありますか?

答えて

0

関係の方向を指定する必要があります。

MATCH (C:Company {Company: 'Node1'}) 
MATCH (J:Company {Company: 'Node2'}) 
MERGE (C)-[:Partner]->(J); 
+0

ありがとうございます!私はちょうどそれを試み、私は(変更、レコードなし)を得ています。 – AngryAsianMan

+3

「MATCH(C:Company {Company: 'Node1'})MATCH(J:Company {Company: 'Node2'})RETURN C、J'は2つのノードを返しますか? – manonthemat

+0

問題が何かを知りました。 csvファイルでは、Node1の命名に余分な文字が含まれています。とにかくCypherでこれを修正できるのですか? – AngryAsianMan

1

ので、他の回答にコメントによると、あなたの実際の問題は、あなたが間違ったプロパティ値(「ノード1」の代わりに「ノード1」)とCompanyノードを作成したことです。したがって、最初のMATCH句が失敗しました。

サイファーを経由して、「ノード1」に「ノード1」からノードプロパティの値を変更するには、あなたがこれを行うことができます:

MATCH (c:Company {Company: 'Node1 '}) 
SET c.Company = 'Node1'; 

これは一般的な問題である場合は、そのプロパティの両端から空白をトリミングすることができますすべてのCompanyのノードの値このよう:

MATCH (c:Company) 
SET c.Company = TRIM(c.Company); 

あなただけの右側にトリムしたい場合は、TRIMの代わりにRTRIM関数を使用することができます。

関連する問題