Graph Neo4j如何通过单个合并从CSV文件的两列创建节点?
我正在使用以下代码创建一个图形Graph Neo4j如何通过单个合并从CSV文件的两列创建节点?,graph,neo4j,cypher,graph-databases,Graph,Neo4j,Cypher,Graph Databases,我正在使用以下代码创建一个图形 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 RETUR
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
这段代码创建了一个类似这样的图但我需要下面这样的图表来执行分析
我提出的一个解决方案是,我可以同时创建
node1
和node2
使用单个MERGE
子句,因为它将创建非重复节点。我尝试过像这样修改代码
MERGE (n:sourceNode {id:network.node1}, m:destNode {id:network.node2})
和其他人,但我得到语法错误。有人能帮我解决这个问题吗?或者对此问题有其他解决方案吗?您有两个节点
A
,因为在合并中使用的标签不同。
因此,最后你有:
- 一个节点
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
在标签节点上创建唯一约束:在(n:Node)上创建唯一约束断言n.id是唯一的代码>