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

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

问题描述:

我试图创建一个Neo4j的图形和我的数据是在CSV文件看起来像如何使用CSV文件中的值作为neo4j中的关系标记?

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。他们有一个type
  2. 如果您需要指定变量中关系的类型,则需要使用APOC library中的过程apoc.create.relationship
  3. 为避免创建重复节点,请使用MERGE而不是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