Neo4j-如何使用单个 MERGE 从两列 CSV 文件创建节点?

Neo4j-how to create nodes from two columns of CSV file with single MERGE?

我正在使用以下代码创建图表

LOAD CSV WITH HEADERS 
FROM "file:///fileName.csv"  
AS network
MERGE (n:sourceNode {id:network.node1})
MERGE (m:destNode {id:network.node2})
WITH n,m,network
CALL apoc.create.relationship(n, network.connection, {}, m) yield rel
RETURN n, 
rel, 
m  

他们的 CSV 文件包含像

这样的重复值
node1,connection,node2
A,0.75,B  
c,0.5,A

这段代码创建了一个像这样的图
但我需要像下面这样的图表来执行分析
我想出的一个解决方案是我可以同时创建 node1node2 带有单个 MERGE 子句,因为它将创建非重复节点。我试过像

这样修改这段代码
MERGE (n:sourceNode {id:network.node1}, m:destNode {id:network.node2})  

和其他人,但我收到语法错误。有人可以让我摆脱这种情况吗?或者有任何其他解决这个问题的方法吗?

您有两个节点 A,因为在您的 MERGE 中您没有使用相同的标签。 所以最后你有:

  • 一个节点 A 带有标签 sourceNode
  • 一个节点 A 带有标签 destNode

如果你只想有一个节点A,请在源节点和目标节点上使用一个公共标签,比如:

LOAD CSV WITH HEADERS 
FROM "file:///fileName.csv"  
AS network
MERGE (n:Node {id:network.node1})
MERGE (m:Node {id:network.node2})
WITH n,m,network
CALL apoc.create.relationship(n, network.connection, {}, m) yield rel
RETURN n, 
rel, 
m  

此外,在此示例中,您应该为 属性 id 的标签 Node 创建唯一约束:CREATE UNIQUE CONSTRAINT ON (n:Node) ASSERT n.id IS UNIQUE;