嵌套顶点的查询结果

Query result with nested vertices

[这里是 OrientDB 初学者..]

我的数据结构如下:

User <[PostEdge]- Post <[CommentEdge]- Post
                     ^[CommentEdge]- Post
                     ^[CommentEdge]- Post

因此,post 通过 PostEdge 与用户相关,而另一个 post 可能通过 CommentEdge 与 post 相关。

我正在尝试查询提供如下内容的数据结构:

[
    {
    content: "",
    comments: [{content: ""}, {content: ""}, {content: ""}],
    poster: {name: ""}
    }
]

到目前为止我得到的最接近的是..

SELECT uuid, content, created_on, IN('CommentEdge') as comments, in('PostEdge') as poster
        FROM (SELECT expand(out('PostEdge')) FROM #28:0)
        WHERE outE('CommentEdge').size() = 0

这个returns我有点像..

[
    {content: "", comments: [#12:0, #13:0, #14:0], poster: [#15:0]}
]

我花了一天的时间试图解决这个问题,但我做空了。那,我相当确定“FROM (SELECT.....` 部分不是一个好主意。所以,首先,是否有一个函数或我缺少的东西,包括那些记录而不只是返回记录 ID?其次,是否有更好的方法来做我想做的事情?(我假设有,只是我还没有掌握诀窍)。

所以,我要找的是 'fetchplan'。这最终解决了我的问题。

https://orientdb.com/docs/2.2/Fetching-Strategies.html

本质上,fetchplan 是一条指令,告诉查询 expand/traverse 链接文档。

我的接近尾声结果是..

SELECT content, uuid, created_on, @rid, in('CommentEdge') as comments
FROM (SELECT expand(out('PostEdge')) FROM :userId WHERE outE('CommentEdge').size() = 0 )
FETCHPLAN comments:1