3

私はOrientDb Studio 2.2.8automobileで Vehicle History データベースを使用しており、 によって作成されたクラスのすべてのレコードを投影したいと考えていKiaます。

データベースのスキーマは次のようになります。

(Automobile) --isModel--> (Model) --isMake--> (Make)

ここでAutomobile、 、Model、およびMakeは頂点でありisModel、 、およびisMakeはエッジ タイプです。

traverse ステートメントを使用して、次のコマンドから取得した同等の結果セットを返したいと考えています。

Select expand(in('isMake').in('isModel')) from Make where name = "Kia"

その結果は…

+----+--------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|#   |@RID    |@CLASS   |color    |convertib|out_isMod|trailerHi|emissions|safety   |out_Purch|VIN      |
+----+--------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
|0   |#17:1441|Automo...|White    |true     |[#24:1...|false    |2016-0...|2014-0...|[#23:5...|840CDC...|
|1   |#17:1576|Automo...|Maroon   |true     |[#24:1...|false    |2010-0...|2004-0...|[#23:5...|E71761...|
|2   |#17:1503|Automo...|Dark Gray|true     |[#24:1...|false    |2009-0...|2016-1...|[#23:5...|FAEB6F...|
+----+--------+---------+---------+---------+---------+---------+---------+---------+---------+---------+

これを実行してみました:

Select
  from (traverse in from Make while $depth <= 2)
  where name = "Kia"

返されたレコードは 1 つだけですが、期待していたように Automobile クラスではありません。メイクからです。

+----+-------+------+----+-------------------------------------+----------------------------+
|#   |@RID   |@CLASS|name|in_isMake                            |out_Sold                    |
+----+-------+------+----+-------------------------------------+----------------------------+
|0   |#15:612|Make  |Kia |[#25:1767,#25:2036,#25:2067,#25:2131]|[#22:5153,#22:5383,#22:5655]|
+----+-------+------+----+-------------------------------------+----------------------------+

基本的には、トラバースを使用して、Make起亜自動車の 3 台をデータベースに投影したいと考えています。

4

1 に答える 1

3

これを試すことができますか?

SELECT FROM (TRAVERSE in() 
FROM (SELECT FROM Make where name='Kia')) 
WHERE @class='Automobile'
于 2016-09-12T02:51:27.797 に答える