我希望以单向方式遍历,但是在返回和获取路径中已过滤的顶点时会遇到困难。请帮忙。
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')
答案 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')