我们可以在where子句之间的时间之间发出顶点吗

时间:2018-09-17 14:38:56

标签: azure-cosmosdb gremlin tinkerpop3

我希望以单向方式遍历,但是在返回和获取路径中已过滤的顶点时会遇到困难。请帮忙。

g.V().hasLabel('states').as('s').
  in().hasLabel('url').as('u').
  select('s').
  where(and(inE('exporting').has('forward','states'),
            inE('release').has('forward','states'))).
  select('u')

1 个答案:

答案 0 :(得分:1)

由于您所有的过滤器都非常依赖s,因此使用match()步骤是有意义的。

g.V().hasLabel('states').
  match(__.as('s').in().hasLabel('url').as('u'),
        __.as('s').inE('exporting').has('forward','states'),
        __.as('s').inE('release').has('forward','states')).
  select('u')

至少,这使其更易于阅读。但是,有一种甚至更简单的方法来编写查询,该查询根本不需要标签:

g.V().hasLabel('states').
  and(inE('exporting').has('forward','states'),
      inE('release').has('forward','states')).
  in().hasLabel('url')