Гремлин: как извлечь значение из выбора - PullRequest
0 голосов
/ 06 мая 2019

У меня есть следующий запрос gremlin:

gremlin> g.E('96b546e0-bf87-9649-2694-ccc29acec83e').as('e')
    .properties('foo').as('foo').select('e').outV().outE()
    .has('foo', __.select('foo')).valueMap()

    ==>{foo=bar2}

    ==>{foo=bar}

Приведенный выше запрос предназначен для начала с ребра, а затем идентифицирует все остальные ребра из его outV, которые имеют то же значение для свойства ребра 'foo».Проблема в том, что has () ожидает значение для второго аргумента, а select () возвращает свойство

Мой вопрос :.Как я могу получить значение для 'foo' на начальном ребре, а затем использовать это значение в функции has () или where (), чтобы отфильтровать ребра, которые не разделяют одно и то же значение для свойства 'foo'?

1 Ответ

1 голос
/ 07 мая 2019

Чтобы сравнить свойство одного элемента со свойством другого элемента, вы используете where():

g.E('96b546e0-bf87-9649-2694-ccc29acec83e').as('e').
  outV().outE().
  where(eq('e')).
    by('foo')

Чтобы исключить исходное ребро, вы должны сделать:

g.E('96b546e0-bf87-9649-2694-ccc29acec83e').as('e').
  outV().outE().
  where(neq('e')).
  where(eq('e')).
    by('foo')
...