【问题标题】:SET in combination with LOAD CSV in cypherSET 与密码中的 LOAD CSV 结合使用
【发布时间】:2016-06-07 19:00:38
【问题描述】:

我是 Neo4j/Cypher 的新手。我正在尝试使用导入的 CSV 文件中的各种信息列来设置节点的属性,但我遇到了问题。以下是我尝试的相关部分:

// Barge, Boat, City, Port.

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM
'file:///test.csv' AS line
WITH line

CREATE (p:port {name: UPPER(line.location_name)})

SET p.year = {line.event_year},
    p.day = {line.event_day},
    p.month = {line.event_month}

但我不断收到一条错误消息,内容如下:

Invalid input '.': expected an identifier character, whitespace, '}' or            ':' (line 33, column 19 (offset: 871))
"SET p.year = {line.event_year},"
                   ^

我不知道该怎么做。我知道,如果我手动将属性设置为一个值——并且没有将该属性设置为 CSV 文件的指定列中的值——就不会有问题。我还尝试将属性值括在反引号而不是大括号中。

【问题讨论】:

    标签: csv neo4j cypher


    【解决方案1】:

    只是一个语法问题 - 你不需要花括号:

    SET p.year = line.event_year,
        p.day = line.event_day,
        p.month = line.event_month
    

    花括号用于查询参数(或用于节点模式中的内联属性)。在这种情况下,line 是映射变量,而不是查询参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 2013-09-21
      • 2013-07-19
      相关资源
      最近更新 更多