1

最短の方法で私の問題は以下のとおりです。次のcsvファイルから取得する必要があります

(https...)drive.google.com/file/d/0B-y9nPaqlH6XdXZsYzAwLThacTg/view?usp=sharing

neo4j の次のデータ構造 (暗号インポートを使用):

https://drive.google.com/file/d/0B-y9nPaqlH6XdlZHM216eDRSX3c/view?usp=sharing

それ以外の:

[ https://drive.google.com/file/d/0B-y9nPaqlH6XdE9vZ0gyNU1lR0U/view?usp=sharing]

より長い解釈:

私の問題の解決策は、バインドされた要素を理解する必要があるだけだと思いました。

しかし、私は多くの方法で(最初に単一ノードを作成するか、空のデータベースで)何度も試しました:

LOAD CSV with headers FROM "file:///C:/Users/user/Desktop/neo4j help/calling.csv"
AS csvLine

MERGE (u1:Person { number:(csvLine.A), name:(csvLine.name_A)}) MERGE (u2:Person { number:(csvLine.B), name:(csvLine.name_B)})

MERGE (u1:Person { number:(csvLine.A), name:(csvLine.name_A)})-[c:called]->(u2:Person { number:(csvLine.B), name:(csvLine.name_B)})
RETURN u1.name,c,u2.name

疑問に思った結果の代わりに、エラーメッセージだけが表示されました:

u1ここではプロパティまたはラベルを使用して作成できません。このコンテキストには既に存在します

ノードを「事前にマージ」せずに、上記の結果が得られます (ピンクの図)。

必要な結果を得るには何が必要ですか (最初の図)。

4

1 に答える 1

2

u1 および u2 ノードを再定義する必要はありません。識別子を再利用して関係をマージするだけです:

LOAD CSV with headers FROM "file:///C:/Users/user/Desktop/neo4j help/calling.csv"
AS csvLine

MERGE (u1:Person { number:(csvLine.A), name:(csvLine.name_A)}) 
MERGE (u2:Person { number:(csvLine.B), name:(csvLine.name_B)})
MERGE (u1)-[c:CALLED]->(u2)
RETURN u1.name,c,u2.name

注: あなたの画像はどちらも同じだと思います。質問に投稿できます。多くの人は、2 つまたは 3 つのブラウザー ウィンドウを開く必要があるため、質問をスキップします。

于 2015-08-28T15:23:48.720 に答える