使用 Traverse from 投影 OrientDB 中的记录

Using Traverse from to project the records in OrientDB

我在 OrientDb Studio 2.2.8 中使用车辆历史数据库,我想投影 automobile class 的所有记录] 由 Kia 制作。

数据库的架构如下所示:

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

其中 AutomobileModelMake 是顶点,isModelisMake 是边类型。

我想使用 遍历语句 到 return 一个等效的结果集,因为我从这个命令得到:

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"

我只得到一张唱片 returned,它不是汽车 class 的,就像我预期的那样。它来自 Make。

+----+-------+------+----+-------------------------------------+----------------------------+
|#   |@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 开始的遍历来投影数据库中的三辆起亚汽车。

你能试试这个吗?

SELECT FROM (TRAVERSE in() 
FROM (SELECT FROM Make where name='Kia')) 
WHERE @class='Automobile'