Gremlin:使用 as() 时删除重复值

Gremlin: removing duplicate values while using as()

这是我的图表示例:

图是我用graphdb的例子,问题是:想得到jetse的建议吗?

这是vertices and edges creation for this example

我尝试了不同的查询。有时我会收到列引用错误,但我找到了解决方案,但我确定它不是最佳解决方案。

起始顶点:jetse 所有顶点都有 属性 调用:fname 边缘:工作、知识、教学、注册

我想做的是:1- jetse 在 itph 工作,让与 stef 一起工作的人,知道 stef 的人是 Remsy,remsy 在有学生的地方教授一门课程。

问题是当我输出结果时: 史蒂夫 雷姆西 奥马尔

斯蒂夫 雷姆西 ufuk1

因为他们都有自己的优点

我想要这样的结果

Stef Remsey Omar ufuk1 ufuk2

我的解决方案是:

g.V('jetse').as('exclude').
  out('works').
  in().as('sug').
  where(neq('exclude')).
  in('knows').as('b').
  out('teaches').
  in('enroll').as('std').
  union(select('sug').by('fname'),
        select('b').by('fname'),
        select('std').by('fname')).
  dedup()

您对此解决方案有更好的查询吗?

感谢 tiny-wa 让我对我的回答充满信心。

    g.V('jetse').as('exclude').
  out('works').
  in().as('sug').
  where(neq('exclude')).
  in('knows').as('b').
  out('teaches').
  in('enroll').as('std').
  union(select('sug').by('fname'),
        select('b').by('fname'),
        select('std').by('fname')).
  dedup()