2017-03-06 10 views
1

私は(a)-[:HAS]->(b)neo4jには、サイファークエリで「空白」のパラメータを許可する方法がありますか?

は、私は、ユーザーが同様CYPHERクエリの線に沿って、何かをa_id OR b_idを提供し、データを取得することができるようにしたいというような関係を持っている:

MATCH (a:A {id: {a_id}})-[:HAS]->(b:B {id: {b_id}}) RETURN *

しかし、パラメータを渡さないとa_idまたはb_id私はエラーを受け取ります。パラメータが存在しないようにして無視する方法はありますか?

たぶんの線に沿って何か:あなたが名前のトップレベルパラメータを使用することができます CASE {a_id} WHEN NOT NULL THEN ...

答えて

1

合格のparams:

:params { "_": { a_id: '123' } } 

と問合せ:例えばのparamsで供給されていない場合はプロパティはnullになりますので、失敗することがあり

MATCH (a:A {id: {_}.a_id})-[:HAS]->(b:B {id: {_}.b_id}) RETURN * 
+0

。私はCOALESCE()の使用がこれを修正するかもしれないと思います: 'MATCH(a:A {id:COALESCE({_}、a_id、a.id)}) - [:HAS] - >(b:B {id:COALESCE {_}。b_id、b.id)})RETURN * ' – InverseFalcon

関連する問題