2

OrientDb グラフ データベースで、頂点とエッジのペアに関する情報を取得しようとしています。

たとえば、次のケースを考えてみましょう。

V1 ---E1---> V2
   ---E2---> V3 --E3--> V2

結果として次の3行が必要です。

V1, E1
V1, E2
V3, E3

私は次のことを試しました:

select label, flatten(out.label) from V
select label from (select flatten(out) from V)
select label, flatten(out) from V
select flatten(out) from V
select $current, label from (traverse out from V while $depth <= 1) where $depth = 1

しかし、これらのソリューションはどれも、私が望むものを返していないようです。頂点とエッジのペアを返すにはどうすればよいですか?

4

3 に答える 3

0

フィールドを取得して結果にするため、FLATTEN 演算子は単独で動作します。あなたが何をしたいのか理解できません。期待される出力を書いてもらえますか?

于 2013-02-26T11:44:55.280 に答える
-1

Neo4j で使用されている CYPHER 構文は、最終的に私を救ってくれました。

start n=node(*) MATCH (n)-[left]->(n2)<-[right]-(n3) WHERE n.type? ='myType' AND left.line > right.line - 1 AND left.line < right.line + 1 RETURN n, left, n2, right, n3

ノード n はピボット要素であり、パス内の他の各ステップと同様に、フィルタを提供できます。私にとっては、パスの他の部分に応じて、次のステップを選択することが重要でした。

OrientDb では、プロパティを互いに簡単に関連付ける方法を見つけることができませんでした。

于 2013-02-26T13:32:54.527 に答える