创建与属性的关系 - Neo4j

Creating a relationship with an atribute - Neo4j

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

我有两组节点,第一组称为 Workers,它有一个 ID 和 worker 的名字。

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

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

为此,我有一个 trabajaensector.csv 文件,它通过 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(product),其扇区为"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

这是我的问题,这种关系显然建立得很好,但是我丢失了第三个 "sector" 数据,该数据表明工人通过操纵该产品工作的部门。

例如,操作苹果的工人 Juan 的关系应该在变量/属性 "fruteria" 或鱼 "pescaderia".

的关系中

知道如何在关系中正确包含该数据以及如何恢复它吗?

您可以将 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;

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