在OrientDb中选择不同的顶点

在OrientDb中选择不同的顶点,orientdb,graph-databases,nosql,Orientdb,Graph Databases,Nosql,我有一个包含以下数据的数据库: Vertex Country City Hotel -------------- -------------- --------------------------- ID Name ID Name ID Name -------------- -------------- -----------

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

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
我想提取意大利的所有酒店,这些酒店可以直接提取在中的边缘之后,或者间接提取在中的边缘部分之后,并且对于每个元素部分中的边缘之后提取

基本上预期的结果是

#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)