OrientDB 边和顶点属性的组合

OrientDB combination of edge and vertex properties

我正在尝试 select 指向 "Rgb" 顶点的边 "Contained",在 OrientDB 2.1 中,使用 PhpOrient。边缘有一个属性 "probability",Rgb有一个属性 "hex".

所以:

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

此查询找到边 "Contained" 与 属性 "probability"。

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"

但我想同时拥有这两个属性。我怎样才能将查询组合成一个可以找到两个属性的查询?

在 v 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