与えられるグラフ: 第三者がパラメータを所有している場合と所有していない場合があります。orientdb stopいくつかの条件でトラバース
Aパラメータはコンテキスト、コードと値(:CREATE VERTEX Parameter SET context='val1', code='val2', value='val3'
EX)で表されます。 Aサードパーティタイプで表される(例:CREATE VERTEX ThirdParty SET type=7
)
頂点#40から出発:0、iは、所定のパラメータの値(たとえば、コンテキスト=「VAL1」とコードとパラメータを取得したいです=」 val2 ')(このノードは異なるパラメータを持つことができます)。ノードが与えられたパラメータを所有していない場合、私は与えられたパラメータの値を見つけるまで、このノードの親を1つずつ探します。
私はこのクエリを使用してみました:
SELECT parameter.value FROM (MATCH {class:ThirdParty,
where: (type = 7)}.in('parent_of')
{while: (out('owns').size() == 0),
where: (out('owns').size() > 0)}.out('owns')
{as: parameter} RETURN parameter)
が、問題はThirdParyが異なる
コンテキストと
コードで、複数のパラメータを持つことができ、私は
を変更する方法を見つけることができない、ありますクエリ内のの部分は、指定されたパラメータ(context = 'val1'およびcode = 'val2')と比較されます。
ありがとうございました!あなたが修正したバグは、エラー: 'java.lang.UnsupportedOperationException:Implement SuffixIdentifier! '?なぜなら、 'out( 'owns')という部分を削除してクエリを実行すると、' while'と 'where'節にある' val1' AND'が 'UnsupportedOperationException'になります。 – mabbas
まさに私がやった修正その問題を解決しました –
私はちょうどスナップショットを使ってテストをしました。与えられたパラメータの値を取得するために 'where:(code =" val2 ")'を '{as:parameter}'句に追加するだけでした。さもなければ、クエリはノードに接続されたすべてのパラメータの値を返します。ご協力ありがとうございました!私はorientdbで昨日仕事を始めました。私はすでに大ファンです! :) – mabbas