neo4j cypher中的三元运算符/默认值

时间:2012-07-24 11:30:10

标签: neo4j cypher

我需要实现一个三元运算符,它可以帮助我从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。

1 个答案:

答案 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))