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
这段代码创建了一个像这样的图
但我需要像下面这样的图表来执行分析
我想出的一个解决方案是我可以同时创建
node1
和 node2
带有单个 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;
我正在使用以下代码创建图表
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
,因为在您的 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;