neo4j - neo4j foreach 条件总是执行
问题描述
我有一个 if 语句的 foreach 条件。我只希望条件在$blobFile.extension
is not时运行null
,但是我尝试了几种不同的方法,但这是唯一执行的方法。然而,这个查询似乎总是执行¯_(ツ)_/¯ 也许我是盲人,但任何帮助将不胜感激。
$blobFile.extension
是字符串或空值。
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
推荐阅读
- laravel - 无法使用 Laravel 中的关系从第三个表中获取数据
- c# - 从纯 UWP 应用读取组策略设置
- docker - kubernetes flannel 网络服务 CrashLoopBackOff
- webstorm - 没有分号,WebStorm 代码完成不起作用
- mysql - 注册时如何插入帐户
- language-model - 使用领域文本预训练 BERT/RoBERTa 语言模型,估计需要多长时间?哪个更快?
- regex - 电子邮件地址的 PCRE 正则表达式
- r - 如何将此 csv 语法读入 R
- python - 通过python脚本在docker中创建目录
- python - Telethon 获取消息发件人姓名