与属性创建关系 - Neo4j

时间:2017-11-22 00:25:21

标签: neo4j relationships

我正在学习neo4j,我有以下问题。

我有两组节点,第一组称为具有ID和工作人员姓名的Workers。

另一方面,还有另一组节点,称为产品,除了id之外,还具有以下属性;价格,名称。

我想创建一个名为"操纵"的关系。我将工人与他将要操纵的产品联系起来。

为此,我有一个 trabajaensector.csv 文件,该文件通过id将工人与他们将要操作的产品联系起来,也是通过id。

这是它的形式:

id1,id2,sector
1,1,fruteria
2,2,fruteria
3,2,fruteria
4,7,panaderia
5,5,fruteria
6,5,fruteria
7,9,bebidas
8,9,bebidas
9,10,bebidas
10,10,bebidas
11,3,pescaderia
12,8,panaderia
13,7,panaderia
14,9,bebidas
15,10,bebidas
16,4,pescaderia
17,2,fruteria
18,4,pescaderia

总之,id1(worker)操纵id2(产品),其扇区是" fruteria / pescaderia / panaderia o bebida"

这是我用于创建操纵关系的CQL:

LOAD CSV WITH HEADERS FROM "file:///trabajaensector.csv" AS csvLine
MATCH(w:Worker),(p:Product) where w.id= toInt(csvLine.id1) and p.id=
toInt(csvLine.id2) create (w)-[sect:trabajasec]->(p) return  sect

这是我的问题,这种关系显然创造得很好,但是我失去了第三个"部门"数据,通过操纵该产品来指示工人工作的部门。

例如,操作苹果的名叫Juan的工人的关系应该在关系中具有变量/属性" fruteria"或者是鱼类和#34; pescaderia"。

有关如何在关系中正确包含该数据以及如何恢复它的任何想法?

1 个答案:

答案 0 :(得分:2)

您可以向sector关系添加trabajasec属性:

LOAD CSV WITH HEADERS FROM "file:///trabajaensector.csv" AS csvLine
MATCH (w:Worker), (p:Product)
WHERE w.id = TOINT(csvLine.id1) AND p.id = TOINT(csvLine.id2)
CREATE (w)-[sect:trabajasec {sector: csvLine.sector}]->(p)
RETURN sect;

要使用上述查询,您应首先删除先前trabajasec查询创建的LOAD CSV关系。