向关系添加属性

时间:2018-05-10 03:20:46

标签: neo4j cypher

我正在尝试使用conf加载CSV文件并建立关系。我有一个交叉表,我用来支持多对多的关系。对于我的例子,我将使用两(2)个主节点,Car和Driver。

汽车可以由一个或多个驾驶员驾驶,驾驶员可以驾驶一辆或多辆汽车。

我的交叉表看起来像这样

LOAD FROM CSV

这是我成功将其加载到Neo4j中的代码

CarID (int)
DriverID (int)

我想在此关系中添加一个属性。现在表格如下:

LOAD CSV WITH HEADERS FROM 'FILE:///CarToDriverXFER.csv' AS row FIELDTERMINATOR ','

MATCH (c:Cars {carID:row.carID})

MATCH (d:Drivers {driverID:row.driverID})

MERGE (c)-[:DRIVES]->(d)

我不知道该怎么做。我知道如果对象是一个节点如何做到这一点,但我没有得到关于构建关系的语法正确。这是我尝试解决方案,但我收到了错误。

CarID (int)

DriverID (int)

Rating (int)

上面的脚本加载了关系但属性" Rating"未列在属性上。

有人可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以将属性添加到关系中,方法与向节点添加属性的方式相同,即:

LOAD CSV WITH HEADERS FROM 'FILE:///CarToDriverXFER.csv' AS row FIELDTERMINATOR ','
MATCH (c:Cars {carID:row.carID})
MATCH (d:Drivers {driverID:row.driverID})
// adding 'Rating' attribute to ':Drives' relationship between 'c' and 'd'
MERGE (c)-[:DRIVES {Rating:row.Rating}]->(d)