在neo4j中添加关系

时间:2016-03-16 17:52:48

标签: neo4j cypher

我已使用以下命令将以下mailer.csv文件加载到neo4j,并且能够看到所有10个节点。

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

埃德加-------------乔治-------亨利--------------托马斯--------- --Sean --------马克-------诺亚----------奥利维亚

1 个答案:

答案 0 :(得分: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;