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
我正在尝试 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