我已经OPTIONALLY MATCH
了一个节点,我想根据是否找到匹配来确定一些值。例如。这个人为的简化例子:
OPTIONAL MATCH (node)
RETURN (CASE WHEN node THEN 'yes' ELSE 'false' END) AS result
不幸的是,Neo4j拒绝了以下错误消息:
Error: Type mismatch: expected Boolean but was Node (line 2, column 19)
"RETURN (CASE WHEN node THEN 'yes' ELSE 'false' END) AS result"
^
http://console.neo4j.org/r/dnmlu7
我怎样才能做到这一点?我已尝试NOT(NOT(node))
,但同样的问题。我已尝试过COUNT(node) > 0
,但错误消息表明它是聚合的无效位置。 ?
存在运算符不再存在于2.0+中。
我想我错过了一些明显的东西。谢谢您的帮助。 =)
答案 0 :(得分:1)
你必须明确检查(没有Crockfordian'真实性'在这里!)。在节点匹配时返回true
,在不匹配时返回false
MATCH (node)
RETURN node IS NOT NULL as result
并在CASE
子句中使用
MATCH (node)
RETURN CASE WHEN node IS NULL THEN 'no' ELSE 'yes' END as result