【问题标题】:Importing sting arrays to integer from csv to Neo4j using Cypher使用 Cypher 将字符串数组导入到从 csv 到 Neo4j 的整数
【发布时间】:2020-06-24 10:55:00
【问题描述】:

我是 Neo4j 和 Cypher 的新手,我正在尝试从 csv 导入一些包含 ID 数组的数据。我有下面的查询,但由于 Cypher 默认为字符串,我一直无法找到将 placeID 数组转换为整数的最佳方法。

LOAD CSV WITH HEADERS FROM 'http://localhost:11001/project-ca45d786-e360-4e3b-b4b4-eb8fe62a7b55/People-Gridv2.csv' AS row
CREATE (:People {peopleID: toInteger(row.peopleID), nickname: row.nickname, firstName: row.firstName, lastName: row.lastName, relationship: row.relationship, firstMemory: row.firstMemory, lastMemory: row.lastMemory, placeID: split(row.placeID,";")})

我希望我能够执行以下操作,但它不起作用:

placeID: toInteger(split(row.placeID,";"))

谁能指出我正确的方向?

【问题讨论】:

    标签: csv neo4j cypher


    【解决方案1】:

    大概是这样的

    placeID : REDUCE(array=[] , s IN split(row.placeID,";") | array+[toInteger(s)] )
    
    

    获取整数数组

    例子

    with '123;456' as placeID
    return REDUCE(array=[] , s IN split(placeID,";") | array+[toInteger(s)] )
    

    会回来

    [123,456]
    

    甚至更短:)

    with '123;456' as placeID
    return [s IN split(placeID,";") | toInteger(s)]
    

    【讨论】:

    • 谢谢 - 如果我正确理解上述内容,它会创建一个数组,在 csv 中拆分数组,然后将值作为整数添加到新数组中?不幸的是,我无法让它工作,因为我收到了这个错误:类型不匹配:累加器是 List 但表达式的类型是 Integer
    • 添加了一个例子
    • 太棒了,谢谢你的作品。只需要忽略空值,我就完成了!
    • @Sean 它甚至可以更短:) 查看其他解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2017-06-16
    相关资源
    最近更新 更多