2016-12-11 15 views
1

定義されている場合と定義されていない場合があるパラメータ "title"があります。パラメータが定義されている場合は、そのパラメータを持つノードをプロパティとして照合します。Cypher:オプションの/ nullableパラメータのノードと一致

MATCH (movie:Movie {title: {title}}) 

パラメータが定義されていない場合は、そのプロパティで一致するのではなく、すべてのムービーだけを返します。私。私はそれが存在する場合、パラメータで結果をフィルタリングしたいです。これは1つのクエリで可能ですか?

答えて

3

タイトルを条件に一致させる必要があります。試してみてください

MATCH (movie:Movie) 
WHERE {title} IS NULL OR movie.title = {title} 
+1

ワウです。これを共有してくれてありがとう! –

1

更新:これは可能です。他の回答を参照してください。

私はこれが可能ではないと思います。クエリコンパイラがパラメータを検出するとすぐに、それを解決しようとします。パラメータが定義されていない場合、コンパイラはすぐに例外をスローします - QueryState.getParam()メソッドを参照してください。 (Neo4jをドライバで使用している場合は、Javaドライバなどの別の例外が発生し、ClientExceptionとなります)

関連する問題