orientDB 查询中的 $parent 和 $current

$parent and $ current in orientDB query

我在 orientDB 文档中阅读了它,但无法掌握它。 如果有人可以详细解释 $parent 和 $current 的用法,那就太好了。 在几个例子中,我尝试了 $parent.$parent.$current 和 $parent.$current,它们都给出了我认为不应该发生的相同结果。以下是我的假设:

  1. $current 可以访问当前正在处理的 record/node
  2. $parent 可以访问当前正在处理的 record/node 的父对象

你的第二个假设是错误的。它使您可以访问父查询的变量(在子查询中调用遍历时很有用 here)。

一个例子:

create class User extends V    
create class Follows extends E

create vertex User set name = 'u1'
create vertex User set name = 'u2'
create vertex User set name = 'u3'    

create edge Follows from (select from User where name = 'u1') to (select from User where name = 'u2')
create edge Follows from (select from User where name = 'u2') to (select from User where name = 'u3')


select $all from User
let $all = ( traverse out('Follows') from $parent.$current)