1

暗号クエリ自体からいくつかのデフォルト値を返すのに役立つ三項演算子のようなものを実装する必要があります。

シナリオは -

従業員の都市がデリーの場合は 5 を返し、それ以外の場合は 10 を返します

三項演算子のようなもの。

start employee = node(5)
return employee.city == 'DELHI' ? 5 : 10 as val;

私は次のようなことを試しました

start employee = node(5)
return coalesce (employee.city == 'DELHI', 5)

しかし運がない。

Cypher であろうと Traversal であろうと、neo4j でそのようなシナリオを実装する方法はありますか。

4

2 に答える 2

3

残念ながら、そのままではサポートされていませんが、フィルター、ヘッド、およびコレクション リテラルを使用してそれを行うためのハックを次に示します。

アイデアは、2 つの要素のリストと、「true-branch」の最初の要素で true になり、代わりに、false-branch の値を表すリストの 2 番目の要素で 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))
于 2012-08-02T08:32:39.597 に答える
0

これは非常に古い質問であることは知っていますが、Google がここに私を着陸させたので、答えがあります (Cypher in Neo4J 3.5+):

MATCH (employee:Employee)
RETURN 
CASE employee.city WHEN "DELHI" THEN 5 ELSE 10 END AS val
于 2021-09-07T13:14:53.617 に答える