#gremlin
#гремлин
Вопрос:
У меня есть граф с двумя вершинами, имеющими идентификаторы ‘a’ и ‘b’.
gremlin> g.V()
==>v[b]
==>v[a]
Есть два ребра от ‘a’ до ‘b’.
gremlin> g.E()
==>e[a6b4bead-c161-5a61-d232-abfa2bfad54e][a-LIKES->b]
==>e[10b4bead-a0fc-8d2c-d69f-26b3e9e4c5d8][a-ЗНАЕТ->b]
gremlin> g.E().ValueMap(true)
==>{id=a6b4bead-c161-5a61-d232-abfa2bfad54e, семантика = социальная, метка = ЛАЙКИ}
==>{id=10b4bead-a0fc-8d2c-d69f-26b3e9e4c5d8, семантика = социальная, метка = ЗНАЕТ}
Мой вопрос: учитывая идентификатор для одного из ребер, я хотел бы найти все остальные ребра с тем же значением для свойства «семантика». Например, учитывая a.LIKES.id Я хотел бы выполнить запрос, который вернет a.KNOWS, используя значение a.LIKES.semantics.
Я начал с:
например(‘a6b4bead-c161-5a61-d232-abfa2bfad54e’) .property(‘семантика’).as(‘семантика’)…вот где я застрял
Спасибо, Джоэл
Комментарии:
1. Вы хотите рассмотреть все ребра в графике или только ребра, которые инцидентны
a
(и / илиb
)?2. только те, которые соответствуют ‘a’
Ответ №1:
where()
в сочетании с by()
модулятором выполнит эту работу:
g.E('a6b4bead-c161-5a61-d232-abfa2bfad54e').as('e').
outV().inE().
where(eq('e')).by('semantics'). // return edges with the same semantics property value
where(neq('e')) // ... except the one we started with