我有一个带有链接时间序列数据链的 LINKMAP 字段的通用(非 V)类。每条记录根据下个月/日/小时/等的键链接到下一条记录。以及下一条记录的@rid 值。我可以使用边缘(非轻量级,具有与 LINKMAP 键相同的单个属性),但我不想这样做,因为我只需要一个单向链接并且希望使用最少的存储空间(加上我的假设是,虽然使用边缘可能会提供稍微更容易的查询,但它不会在性能或存储空间方面提供任何好处)。
我目前有以下批量查询:
begin;
let r = select from data where key='AAA';
let y = select expand(links['2017']) from $r;
let m = select expand(links['07']) from $y;
let d = select expand(links['15']) from $m;
let h = select expand(links['10']) from $d;
return (select $r[0], $y[0], $m[0], $d[0], $h[0])
这很有效,因为我得到了一个带有链接列表中每条记录的@rids 的结果集。
我有两个问题:
- 有没有更有效的方法来做这个查询?我已经用 $path 等尝试了各种 TRAVERSE 选项,但我没有尝试过其他任何工作。我没有尝试 MATCH,因为我没有使用边缘。
- 当前结果集是平坦的,每个值 prop($r、$y 等)都包含相应的@rid。这对我来说没问题,但我想知道是否有办法返回实际记录而不仅仅是@rids。我尝试过的没有任何效果。
PS - 我使用的是 orientjs,但批处理也同样从控制台运行。