OrientDB组合了edge和vertex属性

时间:2016-06-08 08:54:29

标签: orientdb

我正在尝试使用PhpOrient选择一个边缘“Contained”指向OrientDB 2.1中的“Rgb”顶点。边具有属性“概率”,而Rgb具有属性“hex”。

所以:

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

此查询使用属性“probability”查找边缘“Contained”。

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"

但我想拥有这两个属性。如何组合查询以获得一个查询,可以找到这两个属性?

1 个答案:

答案 0 :(得分:4)

在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