OrientDB:Select 个唯一顶点但保留边
OrientDB: Select unique vertices but retain the edges
我正在尝试做以下奇怪的事情。我有一组指向一组顶点的边,但有一些重复 - 多个边指向相同的顶点。
给定一个 SELECT 命令给我边列表,我想:
- SELECT 来自所有 'out' 个顶点的唯一顶点
- Return,以及唯一顶点的@rid,所有指向它们的边的列表。
例如结果应该是一个顶点列表,其中包含 (vertex rid, [edge 1, edge 2, edge 3]).
考虑这个问题的另一种方法是我想按传出顶点进行分组,但以某种方式将我分组的所有边的@rid 保留在一个字段中。
谢谢!
你可以试试这个:
在这里你得到每个顶点的出边
select $a.@rid, $a.outE() from 'your class'
let $a = (select from 'your class' where $parent.current.@rid = @rid)
如果你想要传入顶点,你必须将 $a.outE() 更改为 inE(),如下所示:
select $a.@rid, $a.inE() from 'your class'
let $a = (select from 'your class' where $parent.current.@rid = @rid)
希望对您有所帮助。
此致。
我正在尝试做以下奇怪的事情。我有一组指向一组顶点的边,但有一些重复 - 多个边指向相同的顶点。
给定一个 SELECT 命令给我边列表,我想:
- SELECT 来自所有 'out' 个顶点的唯一顶点
- Return,以及唯一顶点的@rid,所有指向它们的边的列表。
例如结果应该是一个顶点列表,其中包含 (vertex rid, [edge 1, edge 2, edge 3]).
考虑这个问题的另一种方法是我想按传出顶点进行分组,但以某种方式将我分组的所有边的@rid 保留在一个字段中。
谢谢!
你可以试试这个:
在这里你得到每个顶点的出边
select $a.@rid, $a.outE() from 'your class'
let $a = (select from 'your class' where $parent.current.@rid = @rid)
如果你想要传入顶点,你必须将 $a.outE() 更改为 inE(),如下所示:
select $a.@rid, $a.inE() from 'your class'
let $a = (select from 'your class' where $parent.current.@rid = @rid)
希望对您有所帮助。
此致。