2016-06-08 118 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 
相关问题