orientDB查询中的$ parent和$ current

时间:2015-06-16 17:28:12

标签: orientdb

我在orientDB文档中读到它,但无法掌握它。 如果有人可以详细解释$ parent和$ current的使用,那将会很棒。 在一些例子中,我尝试了$ parent。$ parent。$ current和$ parent。$ current,两者都给出了我认为不应该发生的相同结果。以下是我的假设:

  1. $ current允许访问当前正在处理的记录/节点
  2. $ parent允许访问正在处理的当前记录/节点的父级

1 个答案:

答案 0 :(得分:2)

你的第二个假设是错误的。它允许您访问父查询的变量(在子查询中调用traverse时非常有用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)