Arrays csv导入期间的neo4j cypher存储阵列属性
我需要从表单的csv导入数据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
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)。有什么想法吗?