You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OrientDB 3.2.14遍历查询报错:$parent类未找到求助

问题解决:OrientDB子查询引用变量报错及UnidadFiscal查询修正

错误原因

Class $parent not found报错是因为OrientDB的LET子句中,子查询无法通过$parent引用外部LET块里定义的变量,直接使用前面已定义的$uo变量即可解决。

修正后的查询语句

select fechaCreacion.format('yyyyMM') as name,
       $uo as uo,
       $uf as UF   
from Legajo
let $uo = $current.out('Legajo_responsable').out('Fiscal_usuario').out('Usuario_unidadFiscal')[jerarquia != "FISCALIA_GENERAL"][0],
    $uf = case 
            when $uo.jerarquia = "UNIDAD_FISCAL" then $uo 
            else (traverse in('UnidadOrganizativa_dependencias') from $uo until jerarquia = "UNIDAD_FISCAL").last() 
          end
where fechaCreacion >= '2022-01-01' and fechaCreacion <= '2022-12-31' limit 10;

关键修改说明

  1. 变量引用修正:直接用$uo替代$parent.uo,OrientDB的LET子句中,后续变量可直接引用前面已定义的变量。
  2. 自身节点判断:通过case语句处理$uo本身就是UNIDAD_FISCAL的场景,避免无效遍历。
  3. 遍历条件优化:将while jerarquia != "UNIDAD_FISCAL"改为until jerarquia = "UNIDAD_FISCAL",确保遍历到目标节点后停止,再用last()提取最终的UnidadFiscal节点(traverse会返回路径上所有节点,最后一个即为目标节点)。

内容的提问来源于stack exchange,提问作者Marcelo D. Ré

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:24:55