Select OrientDb 中的不同顶点

Select distinct vertex in OrientDb

我有一个包含以下数据的数据库:

Vertex

Country              City                 Hotel
--------------       --------------       ---------------------------
ID      Name         ID      Name         ID      Name
--------------       --------------       ---------------------------
#16:0   Italia       #17:0   Roma         #18:0   Residence Barberini
                                          #18:1   Santa Prisca

Edges

In                           PartOf
---------------              -------------
From     To                  From     To
---------------              -------------
#18:0    #16:0               #17:0    #16:0
#18:0    #17:0
#18:1    #17:0

我想提取意大利的所有酒店,可以直接沿着边In提取,也可以间接沿着边PartOf[=34=提取] 并且对于每个元素 PartOf 另一个跟随边缘 In.

基本上预期的结果是

#18:0   Residence Barberini   (direct from Italia)
#18:1   Santa Prisca          (traversing Roma)

我使用了以下查询

select distinct(h) from 
(select in('in') as h from (traverse in('partOf') from #16:0))

我得到以下结果:

#18:0
#18:0, #18:1

如何才能有效地只检索不同的酒店? 预期结果应该是

#18:0
#18:1   (instead of #18:0, #18:1)

谢谢!

您可以使用

select distinct(h) from 
(select in('in') as h from (traverse in('partOf') from #16:0) unwind h)