2017-06-23 6 views
0

OrientDBでクエリを実行したいのですが、どのように動作するのかわかりません。OrientDBはすべてのエッジを照会します

私はグラフAPIを使用していて、私のDBは、次のようになります。

クラス(V):@route(名前、[スタート]、長さ、ゴール)
クラス(V):@direction(ゴール、長さ)

クラス(E):@has_A クラス(E):@start_Direction クラス(E):@has_Follower

縁部は、このような頂点に接続されている:
ルート - > has_A - >方向
ルート - > start_Direction - >方向
方向 - > has_Follower - >方向

今私はルートの名前ですべての信者を見つけるために、私は(RIDを入力すると、これまでにどのような作品 がされて必要例えばクエリへのクラスstartDirection)直接:

select * from (traverse outE('has_Follower'),has_Follower.in from #??:?) where @class='direction' 

しかし、今、私は問題であるルート()の名前の上に取り除くに取得する必要があり、私がこれまで試したことはある:

select * from (traverse outE('has_Follower'),has_Follower.in from (select @rid from start_Direction where start_Direction.out = (select @rid from route where Name = 'nameOfroute'))) where @class='direction' 

しかし、これは私に空のクエリを与えますが、私は、私が知っているstart_Directionからridをタイプするとhas_Followerが動作します。

ご希望の場合は、事前にお問い合わせください。

+0

こんにちは、行ごとに単一のレコードをしたい場合は、あなたには、いくつかのサンプルデータを追加することができます。一般的には

、私は次のようにあなたが必要なものを行うための最も簡単な方法があると思いますか?どうも –

答えて

0

クエリの1つの問題はおそらくであるため、の代わりにIN、たとえばstart_Direction.out IN (select...の代わりに使用する必要があります。

MATCH 
    {class:route, as:route} -start_Direction-> {} -has_Follower-> {as:direction, while:(true)} 
RETURN [email protected], route.Name, route.Start, route.Length, route.Goal, direction.Goal, direction.length 

それともRETURN $elementsあなたが

関連する問題