OrientDB选择和子查询

OrientDB选择和子查询,orientdb,Orientdb,我真的很困惑。 为什么这样做有效: SELECT out('Posted').out('IsFromCategory') FROM #18:1 这并不是: SELECT out('IsFromCategory') FROM (SELECT out('Posted') FROM #18:1) 这不是我真正的逻辑,而是我在做一些测试时想到的…正如您所意识到的,您需要在子查询中使用展开,因此 SELECT out('IsFromCategory') FROM (SELECT expand(out(

我真的很困惑。 为什么这样做有效:

SELECT out('Posted').out('IsFromCategory') FROM #18:1
这并不是:

SELECT out('IsFromCategory') FROM (SELECT out('Posted') FROM #18:1)

这不是我真正的逻辑,而是我在做一些测试时想到的…

正如您所意识到的,您需要在子查询中使用
展开
,因此

SELECT out('IsFromCategory') FROM (SELECT expand(out('Posted')) FROM #18:1)
这就像没有
展开的子查询
返回一个
@rid
列表,因此没有什么可选择的,而展开后,您将得到一个包含整个实体(顶点)的列表,您可以从中遍历它们拥有的任何边


(不确定为什么这与第一个查询的行为不同。可能是因为第一个查询是一个查询,您明确要求遍历,而第二个查询是两个查询,当子查询返回时,它不知道您希望检索整个顶点)。

我刚刚意识到我必须在子查询中使用“展开”,但为什么?