neo4j foreach 条件总是执行
neo4j foreach conditional always executing
我有一个用于 if 条件语句的 foreach。当 $blobFile.extension
不是 null
时,我只希望条件为 运行,但是我尝试了几种不同的方法,但这是唯一执行的方法。但是,这个查询似乎总是执行 ¯_(ツ)_/¯ 可能我是盲人,但我们将不胜感激。
$blobFile.extension
是字符串或 Null。
image.url
始终在图像节点内设置。
MERGE (species:Reference:Species{ GUID: $reference.guid })
WITH species
MERGE(image:Image:Media{GUID: $blobFile.imageGuid})
ON CREATE SET
image.GUID = apoc.create.uuid(),
image.creationDate = datetime(),
image.name = species.name
ON MATCH SET
image.name = species.name,
image.oldFilename = image.filename
WITH species, image
FOREACH(ignoreme in CASE WHEN $blobFile.extension IS NOT NULL THEN [] ELSE [true] END
| SET image.filename = $blobFile.filename, image.url = 'https://www....' + image.GUID + '.' + $blobFile.extension)
不用FOREACH也可以做到,如下:
MERGE (species:Reference:Species{ GUID: $reference.guid })
MERGE (image:Image:Media{GUID: $blobFile.imageGuid})
ON CREATE SET
image.GUID = apoc.create.uuid(),
image.creationDate = datetime(),
image.name = species.name
ON MATCH SET
image.name = species.name
MERGE (species)<-[r6:IS_ABOUT]-(image)
WITH species, image WHERE $blobFile.extension IS NOT NULL
SET
image.filename = $blobFile.filename,
image.url = 'https://www....' + image.GUID + '.' + $blobFile.extension
我有一个用于 if 条件语句的 foreach。当 $blobFile.extension
不是 null
时,我只希望条件为 运行,但是我尝试了几种不同的方法,但这是唯一执行的方法。但是,这个查询似乎总是执行 ¯_(ツ)_/¯ 可能我是盲人,但我们将不胜感激。
$blobFile.extension
是字符串或 Null。
image.url
始终在图像节点内设置。
MERGE (species:Reference:Species{ GUID: $reference.guid })
WITH species
MERGE(image:Image:Media{GUID: $blobFile.imageGuid})
ON CREATE SET
image.GUID = apoc.create.uuid(),
image.creationDate = datetime(),
image.name = species.name
ON MATCH SET
image.name = species.name,
image.oldFilename = image.filename
WITH species, image
FOREACH(ignoreme in CASE WHEN $blobFile.extension IS NOT NULL THEN [] ELSE [true] END
| SET image.filename = $blobFile.filename, image.url = 'https://www....' + image.GUID + '.' + $blobFile.extension)
不用FOREACH也可以做到,如下:
MERGE (species:Reference:Species{ GUID: $reference.guid })
MERGE (image:Image:Media{GUID: $blobFile.imageGuid})
ON CREATE SET
image.GUID = apoc.create.uuid(),
image.creationDate = datetime(),
image.name = species.name
ON MATCH SET
image.name = species.name
MERGE (species)<-[r6:IS_ABOUT]-(image)
WITH species, image WHERE $blobFile.extension IS NOT NULL
SET
image.filename = $blobFile.filename,
image.url = 'https://www....' + image.GUID + '.' + $blobFile.extension