【发布时间】:2020-06-13 19:19:02
【问题描述】:
我有一个 Neo4J 图表,并希望根据已设置的关系的 ID 在关系上添加一个新属性。 ID 是一个属性,如下所示:
id:16_0beta1_1b500480_1221807483755_439038_8369
在一个 CSV 文件中,我存储了 400 个IDs 和一个对应于IDs 的type。 Neo4J 应该加载 CSV 文件并查看所有关系。当关系 ID 与 CSV 文件中的 ID 匹配时,它应该 set 像这样的新属性:set r.SysML=row.type 并在关系上创建一个新属性:
SysML:块
对于节点,以下子句运行良好:
LOAD CSV WITH HEADERS FROM "file:///SysML.csv" AS row
merge(n:name {id:row.sysID})
on match set n.SysML=row.type
对于我尝试的关系属性:
LOAD CSV WITH HEADERS FROM "file:///SysML.csv" AS row
merge ()-[r:rel {id:row.sysID}]->()
on match set r.SysML=row.type
即使关系有很多变化,我也无法解决它......
【问题讨论】:
-
这个查询是正确的,应该可以工作。您可能在匹配查询中遗漏了某些内容。您能否检查以下查询是否返回任何内容?
LOAD CSV WITH HEADERS FROM "file:///SysML.csv" AS row MATCH ()-[r:rel {id:row.sysID}]->() RETURN r LIMIT 10 -
是的,它返回了所有带有标签“rel”的关系,但是当我进行查询时,它给出了一个错误:Neo4J 不喜欢“匹配集”部分......跨度>
-
确切的错误信息是什么?