多个UNWIND处理空列表

时间:2018-06-27 16:02:56

标签: neo4j cypher

我想添加一个节点 stage('printVersion') { def versionInfo = sh ( script: './gradlew -q printVersion', returnStdout: true ).trim() echo "VersionInfo: ${versionInfo}" //set the current build to versionInfo plus build number. currentBuild.displayName = "${versionInfo}-${currentBuild.number}" ; } 并展开2个列表Papera(如果它们不为空),则为每个列表的每个元素创建一个关系(HAS_WRITTEN或HAS_KEYWORD) 。 我在t上收到错误expected whitespace or a relationship pattern。我在CASE中使用UNWIND与docs

中的用法非常相似
MERGE (author:Author { name: a.name })

2 个答案:

答案 0 :(得分:2)

MERGE是一个操作(不是函数),并且不返回值。因此,不能在CASE子句中使用它。

此查询应执行您想要的操作:

WITH [{name:"john"}] AS authors, [{name:"computer_stuff"}] AS topics
MERGE (n:Paper {name: "mystuff"})
FOREACH(a IN authors |
  MERGE (author:Author { name: a.name })
  MERGE (author)-[:HAS_WRITTEN]->(n))
FOREACH(t IN topics |
  MERGE (topic:Topic { name: t.name })
  MERGE (n)-[:HAS_KEYWORD]->(topic))

答案 1 :(得分:0)

您不能在UNWIND CASE语句中使用MERGE。

将UNWIND CASE视为switch语句,在其中您选择要用于UNWIND零件的值。 MERGE不是列表或null,因此它不是有效值。