Arrays csv导入期间的neo4j cypher存储阵列属性

Arrays csv导入期间的neo4j cypher存储阵列属性,arrays,csv,neo4j,cypher,Arrays,Csv,Neo4j,Cypher,我需要从表单的csv导入数据 id;name;targetset 1;"somenode",[1,3,5,8] 2,"someothernode",[3,8] 我需要使用cypher将targetset存储为集合(数组)。我试过了 USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:/mytable.csv" AS row FIELDTERMINATOR ';' CREATE (:MyNode {id: row.id, name: ro

我需要从表单的csv导入数据

id;name;targetset
1;"somenode",[1,3,5,8]
2,"someothernode",[3,8]
我需要使用cypher将
targetset
存储为集合(数组)。我试过了

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/mytable.csv" AS row FIELDTERMINATOR ';'
CREATE (:MyNode {id: row.id, name: row.name, targetset: row.targetset});
但它将
targetset
存储为字符串,例如
“[1,3,5,8]”
。似乎没有将数组编码字符串转换为实际数组的函数,比如将字符串转换为整数的
toInt
。还有其他可能性吗?

您可以尝试以下方法:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/mytable.csv" AS row FIELDTERMINATOR ';'
CREATE (:MyNode {id: row.id, name: row.name, targetset: split(substring(row.targetset, 1, length(row.targetset) - 2), ',') });
上述代码使用and函数从字符串
[1,3,5,8]
中删除
[
]
字符。考虑到
,字符串
1,3,5,8
被拆分后,
作为分隔符。

将是您在此处的最佳选择。使用函数apoc.convert.fromJsonList()

使用示例:

WITH "[1,3,5,8]" as arr
RETURN apoc.convert.fromJsonList(arr)

有没有解释为什么apoc会是我最好的选择?语法的简单性?速度我从未仅仅为了查询的简单性而使用它,因为它最容易填补功能空白,并且易于使用和阅读。@t与我的解决方案相比,此解决方案的主要优点是
apoc.convert.fromJsonList
将返回一个int值数组。我提出的解决方案将返回一个字符串值数组。。。所以我相信在这种情况下,InverseFalcon解决方案更合适。@InverseFalcon试图在本地集成APOC(win10)。也许我可以通过在这里提问来避免打开一个新问题:在浏览器中,除了
apoc.schema.assert
之外,它不显示任何过程。远程工作(debian)。有什么想法吗?