添加 csv 的第一行作为节点类型的属性 - Neo4J

Add the first row of csv as the attributes of a node type - Neo4J

我有包含很多列的 csv,这就是为什么在编写查询时手动将所有列添加为属性并不是一种高效且自动的方式。 csv 的第一行包含列名,其余行表示包含属性值的节点。

我尝试使用 SET += 添加属性,但没有成功。

LOAD CSV FROM 'file:///stations.csv' AS row
WITH row LIMIT 1
UNWIND row as att
WITH att
CREATE(n:Station)
SET n += att

最好只选择“图中”真正需要的几个属性,并且只加载那些。一般来说,在 Neo4j 中复制关系数据存储 table 结构(具有大量列数)不是最佳实践,首先草拟一个新的图元模型,然后加载它,这通常需要一些 ETL 步骤,并且经常进行数据清洗。可以用铅笔或使用 arrows tool 在纸上画出元模型的草图,如果文档需要,它会提供更精美的图表。

请注意,我可以设想需要动态处理 属性 列表,也许 属性 列表很短但总是在变化?我想有几种方法可以做到这一点,但我想到的一种方法是在字符串中动态构建 cypher 语句,然后使用此 APOC 调用

执行它

CALL apoc.cypher.run()