我需要实现一个三元运算符,它可以帮助我从cypher查询本身返回一些默认值。
情景是 -
如果员工的城市是德里,则返回5,否则返回10
像三元运算符那样的东西。
start employee = node(5)
return employee.city == 'DELHI' ? 5 : 10 as val;
我尝试过像
这样的事情start employee = node(5)
return coalesce (employee.city == 'DELHI', 5)
但没有运气。
有没有办法在neo4j中实现这样的场景,无论是Cypher还是Traversal。
答案 0 :(得分:2)
不幸的是,它不支持开箱即用,但这是一个黑客,使用过滤器,头和集合文字。
这个想法是有一个两个元素列表和一个过滤表达式,对于你的“真正分支”的第一个元素变为true,对于列表中的第二个元素,则为true,表示你的假分支的值。
请参阅此控制台示例:http://console.neo4j.org/r/6tig7g
start n=node(5) return head(filter( a in [5,10] : n.city = 'DELHI' OR a = 10))
一般:
head(filter( a in [true-result,false-result] : CONDITION OR a = false-result))