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

在两个节点neo4j之间创建关系类型,neo4j,cypher,Neo4j,Cypher,我试图在两个节点之间创建一个关系,但由于某些原因,我无法这样做 MATCH (C:Company {Company: 'Node1'}) MATCH (J:Company {Company: 'Node2'}) MERGE (C)-[:Partner]-(J); 我得到了结果(没有变化,没有记录)。在尝试创建此关系之前,我上传了一个带有以下密码的csv: LOAD CSV WITH HEADERS FROM 'FILE:///company_info.csv' AS line MERGE (C

我试图在两个节点之间创建一个关系,但由于某些原因,我无法这样做

MATCH (C:Company {Company: 'Node1'})
MATCH (J:Company {Company: 'Node2'})
MERGE (C)-[:Partner]-(J);
我得到了结果(没有变化,没有记录)。在尝试创建此关系之前,我上传了一个带有以下密码的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创建了一个Partner属性,而不是关系类型。关于如何创建关系类型,您有什么建议吗?

您需要为关系提供方向

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

因此,根据对另一个答案的评论,您的实际问题是您创建了一个属性值错误的
公司
节点(“Node1”而不是“Node1”)。因此,您的第一个
MATCH
子句失败

要通过Cypher将节点属性值从“Node1”更改为“Node1”,可以执行以下操作:

MATCH (c:Company {Company: 'Node1 '})
SET c.Company = 'Node1';
如果这是一个一般性问题,则可以通过以下方式在所有
公司
节点中修剪该属性值两端的空白:

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

如果您只想在右侧修剪,可以使用
RTRIM
功能,而不是
trim

谢谢!我刚刚尝试了一下,我得到了(没有更改,没有记录)
MATCH(C:Company{Company:'Node1'})MATCH(J:Company{Company:'Node2'})返回C,J
返回两个节点吗?我发现了问题所在。在csv文件中,node1的命名有一个额外的字符Node1'我可以通过密码修改吗?