如何使用 CSV 文件中的值作为 neo4j 中的关系标签?

How to use a value in CSV file as relationship lable in neo4j?

我正在尝试在 neo4j 中创建一个图表,我在 CSV 文件中的数据看起来像

node1,connection,node2
PPARA,0.5,PPARGC1A
PPARA,0.5,ENSG00000236349
PPARA,0.5,TSPA

我希望 connection 值用作图表中关系的标签,但我无法做到。以下是我用来创建图形的确切代码。

LOAD CSV WITH HEADERS FROM "file:///C:/Users/username/Desktop/Cytoscape-friend.csv" AS network
CREATE (:GeneRN2{sourceNode:network.node1, destNode:network.node2})
CREATE (sourceNode) -[:TO {exp:network.connection}] ->(destNode) 

我的第二个问题是,由于我的文件中有多个重复值,默认情况下 neo4j 会为重复值创建多个节点。如何为多个值创建单个节点并将所有其他相关节点连接到该单个节点?

  1. 关系没有labels. They have a type
  2. 如果需要指定变量的关系类型,则需要使用过程 apoc.create.relationship from the APOC library
  3. 为避免创建重复节点,请使用 MERGE instead of CREATE

因此您的查询可能如下所示:

LOAD CSV WITH HEADERS 
         FROM "file:///C:/Users/username/Desktop/Cytoscape-friend.csv" 
         AS network
MERGE (sourceNode {id:network.node1})
MERGE (destNode {id:network.node2})
WITH sourceNode, 
     destNode, 
     network
CALL apoc.create.relationship(sourceNode, network.connection, {}, destNode) yield rel
RETURN sourceNode, 
       rel, 
       destNode