Arrays neo4j删除我的阵列数据
.嗨,我正在将数据导入Neo4j图形中 我已经导入了“主题”,其中一些主题将.alias设置为数组,有些则没有Arrays neo4j删除我的阵列数据,arrays,neo4j,Arrays,Neo4j,.嗨,我正在将数据导入Neo4j图形中 我已经导入了“主题”,其中一些主题将.alias设置为数组,有些则没有 LOAD CSV WITH HEADERS FROM "file:///home/michael/db/Aliases.csv" AS r MATCH (t:Topic { mysql_id: toInt(r.id)}) SET t.aliases = [] + t.aliases + split(r.aliases, ';') + r.alias; // Where t.aliase
LOAD CSV WITH HEADERS FROM "file:///home/michael/db/Aliases.csv" AS r
MATCH (t:Topic { mysql_id: toInt(r.id)})
SET t.aliases = [] + t.aliases + split(r.aliases, ';') + r.alias;
// Where t.aliases, r.aliases, or r.alias can be null.
// If any are null then the result is null, erasing the other data.
问题是向数组中添加任何null都会杀死该数组。这种行为的用例显然是。。。嗯,零。但不管怎样
如何将可能为空的值附加到Cypher中的数组
谢谢
迈克
更新:我通过使用三个查询进行了变通:
设置t.alias=[]+r.alias
,该选项可能为空LOAD CSV WITH HEADERS FROM "file:///home/michael/db/Aliases.csv" AS r
with r, filter(x in split(r.aliases, ';') WHERE not x is null) as aliases
MATCH (t:Topic { mysql_id: toInt(r.id)})
SET t.aliases2 = t.aliases + aliases,
t.aliases3 = + aliases;
下面是我在这上面发现的: 可以使用coalesce处理空值:
LOAD CSV WITH HEADERS FROM "file:///home/michael/db/Aliases.csv" AS r
MATCH (t:Topic { mysql_id: toInt(r.id)})
SET t.aliases = coalesce(t.aliases,[]) + split(coalesce(r.aliases,''), ';') + coalesce(r.alias,[]);
嗨,对不起,不清楚
t.alias
、r.alias
或r.alias
可以为空。我更新了示例代码以更好地显示。