我是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文件的指定列中的值 - 则不会出现问题。我也尝试用反引号括起属性值而不是大括号。
答案 0 :(得分:2)
只是一个语法问题 - 你不需要大括号:
SET p.year = line.event_year,
p.day = line.event_day,
p.month = line.event_month
大括号用于查询参数(或用于节点模式中的内联属性)。在这种情况下,line
是一个地图变量,而不是查询参数。