我需要从
形式的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
转换为整数。还有其他可能吗?
答案 0 :(得分:2)
你可以试试这个:
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), ',') });
上述代码使用substring()和length()函数从字符串[
中删除]
和[1,3,5,8]
个字符。在将1,3,5,8
作为分隔符进行分割后,将,
字符串拆分。
答案 1 :(得分:2)
APOC Procedures将是您最好的选择。使用函数apoc.convert.fromJsonList()
。
使用示例:
WITH "[1,3,5,8]" as arr
RETURN apoc.convert.fromJsonList(arr)