【发布时间】:2021-01-06 17:12:09
【问题描述】:
我的 Neo4J 中有以下参数:
{
"lists": [
{
"from": "someone",
"to": "somebody"
}
]
}
还有以下查询:
MATCH (c:Concept{name:'infranodus'}) WITH c, $lists AS list
UNWIND CASE WHEN list = [{}] THEN [null] ELSE list END AS l
WITH l
MATCH (cp1:Concept{name:l.from})
WITH cp1
MATCH (cp2:Concept{name:'somebody'})
RETURN cp1,cp2;
上面的查询会起作用。
但是,如果我将 l.from 替换为不存在的参数,例如l.about,然后 - 由于匹配没有发生 - 第二个 cp2 匹配没有触发。
即使找不到cp1,我如何才能更改此行为并继续执行此查询?也许有一种方法可以传递一个虚拟变量?
MATCH (c:Concept{name:'infranodus'}) WITH c, $lists AS list
UNWIND CASE WHEN list = [{}] THEN [null] ELSE list END AS l
WITH l
MATCH (cp1:Concept{name:l.about})
WITH cp1
MATCH (cp2:Concept{name:'somebody'})
RETURN cp1,cp2;
【问题讨论】: