将标签从NEO4J中的CSV文件添加到节点

时间:2018-12-19 12:37:07

标签: database graph neo4j

我正在尝试从CSV向我的图形数据库添加一些节点,这就像:

    |  city         continent         feature_1 ...
    |--------------------------------------------------
0   |  Barcelona    Europe
1   |  Stockholm    Europe
2   |  New York     America
3   |  Nairobi      Africa
4   |  Tokyo        Asia

第一种方法是简单地将数据加载为:

// Insert city nodes
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:///city_data.csv' AS row
MERGE (city: City {name: row.city})

下一步是合并大陆信息,因此我可以拥有不同颜色的节点。这意味着每个节点都有两个标签,我不确定该怎么做。无论如何,此刻我决定只换一个标签,其中包含大洲的信息。由于此信息位于CSV文件中,因此我相信apoc.create.node工具是解决之道。因此,受How to use apoc.load.csv in conjunction with apoc.create.node的启发,我尝试了以下操作:

CALL apoc.load.csv('file:///city_data.csv') YIELD row
CALL apoc.create.node(['row.continent'], {name:['row.continent']}) YIELD node 
RETURN count(*)

这不会引起任何错误,但是它所做的事情与我所想的有所不同。基本上,它会将列名称(“ row.continent”)本身设置为标签...

enter image description here

1 个答案:

答案 0 :(得分:0)

问题是您将变量括在撇号中,因此请尝试以下操作:

CALL apoc.load.csv('file:///city_data.csv') YIELD row
CALL apoc.create.node([row.continent], {name: row.continent}) YIELD node 
RETURN count(*)