Graph OrientDB:如何遍历图形并获得给定类型的完整路径

Graph OrientDB:如何遍历图形并获得给定类型的完整路径,graph,traversal,orientdb,Graph,Traversal,Orientdb,我有一个编程语言图,其中包的结构是Eclipse表示的,因此每个包都是一个顶点。我想从一个类开始,遍历顶点类为code_包的边。最后,我想打印完整的包名。可能吗 结构与此类似: 如果我理解正确,您的情况是这样的: create class code_Package extends V create property code_Package.name string create class code_ClassUnit extends V create property code_ClassU

我有一个编程语言图,其中包的结构是Eclipse表示的,因此每个包都是一个顶点。我想从一个类开始,遍历顶点类为code_包的边。最后,我想打印完整的包名。可能吗

结构与此类似:

如果我理解正确,您的情况是这样的:

create class code_Package extends V
create property code_Package.name string

create class code_ClassUnit extends V
create property code_ClassUnit.name string

create class belongsTo extends E


# class sdc.spd.ssi.Main
create vertex code_Package set name = 'sdc'      #12:0
create vertex code_Package set name = 'spd'      #12:1
create vertex code_Package set name = 'ssi'      #12:2

create vertex code_ClassUnit set name = 'Main'   #13:0


create edge belongsTo from #13:0 to #12:2
create edge belongsTo from #12:2 to #12:1
create edge belongsTo from #12:1 to #12:0

通过定义函数(例如,join)可以实现您的要求:

像这样:

create class code_Package extends V
create property code_Package.name string

create class code_ClassUnit extends V
create property code_ClassUnit.name string

create class belongsTo extends E


# class sdc.spd.ssi.Main
create vertex code_Package set name = 'sdc'      #12:0
create vertex code_Package set name = 'spd'      #12:1
create vertex code_Package set name = 'ssi'      #12:2

create vertex code_ClassUnit set name = 'Main'   #13:0


create edge belongsTo from #13:0 to #12:2
create edge belongsTo from #12:2 to #12:1
create edge belongsTo from #12:1 to #12:0

然后:

select join($all.fullPath[0])
let $all = (select unionall(name) as fullPath from (traverse out('belongsTo') from #13:0))
输出: