2016-03-16 3 views
-1

Я загрузил ниже файл mailer.csv в neo4j с помощью команды ниже и могу видеть все 10 узлов.Добавление отношения в neo4j

CSV:

SENDER|RECEIVER|SENDDATE 
Chris|Dean|2016-01-03 
Brian|Chris|2016-01-02 
Mark|Noah|2016-01-09 
George|Henry|2016-01-05 
Albert|Brian|2016-01-01 
Thomas|Sean|2016-01-07 
Sean|Mark|2016-01-08 
Edgar|George|2016-01-04 
Noah|Olivia|2016-01-10 
Henry|Thomas|2016-01-06 

Команда:

USING PERIODIC COMMIT 10000 
LOAD CSV WITH HEADERS FROM "file:///C:\\Users\\Abacus\\mailer.csv" AS row 
FIELDTERMINATOR '|' 
CREATE (:Mailer {Sender: row.SENDER, Receiver: row.RECEIVER,Senddate:row.SENDDATE}); 


//select all nodes 
MATCH (n:Mailer) 
RETURN n; 

//count of nodes 

MATCH (n:Mailer) 
RETURN count(*) 

утра пытается создать ниже отношения между отправителями и получателями, чтобы увидеть следы почты

//create relationship 
MATCH (n:Mailer) 
CREATE (Sender)-[r:SENT_TO]->(Receiver); 

Но я не в состоянии см. графики ниже. Не могли бы вы помочь

send to  send to  send to 

Альберт ------------ Брайан --------- Крис ------------- Дин

send to   send to  send to  send to  send to  send to  send to 

Эдгар ------------- Джордж ------- Генри -------------- Томас ------- ----- Шон -------- Марк ------- Ной ---------- Оливия

ответ

0

Что-то вроде этого должно работать. Отправитель и получатель оба превращаются в узлы Person, а узел каждого человека создается только один раз.

MATCH (n:Mailer) 
MERGE (p1:Person {name: n.Sender}) 
MERGE (p2:Person {name: n.Receiver}) 
CREATE (p1)-[r:SENT_TO {date:n.Senddate}]->(p2); 
RETURN p1, r, p2; 
+0

Это работает. Большое вам спасибо – Abacus

+0

Отлично. Не забудьте принять [Принять] лучший ответ, который работает для вас. – cybersam