2016-06-08 55 views
0

我想選擇一個邊緣「Contained」,指向OrientDB 2.1中的「Rgb」頂點,使用PhpOrient。邊緣具有「概率」屬性,並且Rgb具有「十六進制」屬性。OrientDB邊緣和頂點屬性的組合

所以:

Artist -> created -> Artwork -> contained -> Rgb. 

此查詢查找邊緣 「含有」 與財產 「概率」。

SELECT *, EXPAND (OUT("Created").OUTE("Contained")) FROM Artist WHERE path="Achebach, Andreas" 

該查詢找到屬性爲「hex」的頂點Rgb。

SELECT *, EXPAND (OUT("Created").OUT("Contained")) FROM Artist WHERE path="Achebach, Andreas" 

但我想擁有這兩個屬性。如何將查詢合併爲一個查詢,可以找到兩個屬性?

回答

4

在2.1版你可以用一個子查詢做到這一點:

SELECT probability, inV().hex FROM (
    SELECT expand(out("Created").outE("Contained")) 
    FROM Artist WHERE path="Achebach, Andreas" 
) 

在OrientDB V 2.2,您還可以使用模式匹配

MATCH 
    {class:Artist, as:a, where:(path="Achebach, Andreas")} 
    .out("created"){as:aw} 
    .outE("contained"){as:cont} 
    .inV(){as:rgb} 
RETURN cont.probability, rgb.hex 
相關問題