OrientDB查询语言中的传递Clousure

时间:2015-04-30 16:56:02

标签: orientdb

假设我有一个名为PERSON的顶点类和一个名为father的边缘类:

CREATE CLASS PERSON EXTENDS V
CREATE CLASS father EXTENDS E 

假设我用一些记录填充了PERSON。我还在父亲身上填写了一些记录,这些记录将PERSON中的某些记录与PERSON的其他记录联系起来(这个简单的模型是谁的父亲)

我想知道以下查询在OrientDB中的外观如何?

查找人物的所有祖先,比如p1(使用rid =#10:1)?

1 个答案:

答案 0 :(得分:1)

create class Person extends V

create class Father extends E

create vertex Person set name = 'grandfather'               #12:0
create vertex Person set name = 'father'                    #12:1
create vertex Person set name = 'person'                    #12:2

create edge Father from #12:0 to #12:1
create edge Father from #12:1 to #12:2

我相信这是上述情况。你可以:

select from (
    traverse in('Father') from #12:2
) where @rid <> #12:2

这将返回的所有祖先(#12:2)。