Можем ли мы испустить вершины между ними, когда в предложении где - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу пройти однонаправленный путь, но сталкиваюсь с трудностями при возвращении и получении вершины, которая фильтруется в пути.Пожалуйста, помогите.

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 голосов
/ 18 сентября 2018

Поскольку все ваши фильтры в значительной степени зависят от s, имеет смысл использовать match() step.

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')
...