[OrientDB初学者在这里..]
我有如下数据结构:
User <[PostEdge]- Post <[CommentEdge]- Post
^[CommentEdge]- Post
^[CommentEdge]- Post
因此,帖子通过PostEdge与用户相关,而另一篇帖子可能通过CommentEdge与帖子相关。
我试图查询一个数据结构,它给出了类似下面的内容:
[
{
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
这会让我回复一下......
[
{content: "", comments: [#12:0, #13:0, #14:0], poster: [#15:0]}
]
我花了很多时间试图解决这个问题,而且我已经做好了。那,我相当肯定&#39; FROM(选择.....'部分并不是一个好主意。所以,首先,是否有一个功能或某些东西,我是...缺少包括那些记录而不仅仅是回复记录ID?第二,有没有更好的方法来做我想做的事情?(我认为有,我还没有在那里诀窍)。
答案 0 :(得分:0)
所以,我所寻找的是'fetchplan'。这最终解决了我的问题。
https://orientdb.com/docs/2.2/Fetching-Strategies.html
本质上,fetchplan是一条告诉查询扩展/遍历链接文档的指令。
我的接近结果就像..
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