在两个节点neo4j之间创建关系类型

时间:2017-05-31 17:22:04

标签: neo4j cypher

我正在尝试在两个节点之间创建关系,由于某种原因,我无法做到。

MATCH (C:Company {Company: 'Node1'})
MATCH (J:Company {Company: 'Node2'})
MERGE (C)-[:Partner]-(J);

我得到了结果(没有变化,没有记录)。在尝试创建此关系之前,我使用以下cypher上传了一个csv:

LOAD CSV WITH HEADERS FROM 'FILE:///company_info.csv' AS line
MERGE (C:Company {Company: line.Company })
ON CREATE SET
C.Partner = line.Partner,
C.Product = line.Product,
C.Partners = line.Partners,
C.Customers = line.Customers
ON MATCH SET
C.Partner = line.Partner,
C.Product = line.Product,
C.Partners = line.Partners,
C.Customers = line.Customers

我知道C.Partner = line.Partner创建了一个伙伴属性,而不是一种关系类型。关于我在这里可以做什么来建立关系类型的任何建议?

2 个答案:

答案 0 :(得分:1)

因此,根据对其他答案的评论,您的实际问题是您创建了具有错误属性值的Company节点(“Node1”而不是“Node1”)。因此,您的第一个MATCH条款失败。

要通过Cypher将节点属性值从“Node1”更改为“Node1”,您可以这样做:

MATCH (c:Company {Company: 'Node1 '})
SET c.Company = 'Node1';

如果这是一般性问题,您可以通过这种方式修改所有Company节点中该属性值两端的空格:

MATCH (c:Company)
SET c.Company = TRIM(c.Company);

如果您只想修剪右侧,可以使用RTRIM功能代替TRIM

答案 1 :(得分:0)

你需要为这段关系提供方向。

MATCH (C:Company {Company: 'Node1'})
MATCH (J:Company {Company: 'Node2'})
MERGE (C)-[:Partner]->(J);