如何在CSV文件中使用neo4j中的关系标签?

问题描述 投票:2回答:1

我正在尝试在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正在为重复值创建多个节点。如何为多个值创建单个节点并将所有其他相关节点连接到该单个节点?

csv neo4j graph-databases neo4jclient
1个回答
1
投票
  1. 关系没有labels。他们有一个type
  2. 如果需要从变量中指定关系类型,则需要使用apoc.create.relationship中的APOC library过程。
  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
© www.soinside.com 2019 - 2024. All rights reserved.