是否有更有效的方法来返回"遍历"链接列表?

时间:2018-01-25 00:36:40

标签: sql orientdb orientdb2.2 orientjs

我有一个通用(非V)类,其LINKMAP字段链接一系列时间序列数据。每条记录根据下个月/日/小时/等的密钥链接到下一条记录。以及下一条记录的@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的结果集。

我有两个问题:

  1. 有更有效的方法来执行此查询吗?我已尝试使用$ path等各种TRAVERSE选项,但我没有试过任何其他工作。我没有尝试过MATCH,因为我没有使用边缘。
  2. 当前结果集是平的,每个值prop($ r,$ y等)包含相应的@rid。这对我的目的来说没问题,但是我想知道是否有办法返回实际记录而不仅仅是@rids。我没有尝试过任何作品。
  3. PS - 我使用的是orientjs,但批次也是从控制台运行的。

0 个答案:

没有答案