У меня есть график, и я хочу следовать по ребрам, которые содержат свойство, совпадающее со значением в вершине.Например,
vertex -------edge ---------> vertex
vertValue: 123 vert: 123 vertValue: 463
Итак, в приведенном выше случае, скажем, я начинаю с первой вершины, я хочу следовать по краям, у которых свойство 'vert' равно его 'vertValue'.
Мне удалось сделать запрос, используя where
, которому удается следовать по краю:
g.V(id).as('verts')
.outE().values('vert')
.where(eq('verts'))
.by('vertValue')
Проблема в том, что я хочу вернуть фактический объект края.Тем не менее, поскольку мне нужно выполнить 'where' для значения 'vert' ребра, в запросе я делаю values('vert')
, поэтому в результате я получаю только проверяемое значение, а не объект ребра,Я хочу сделать что-то вроде:
g.V(id).as('verts')
.outE()
.where(eq('verts'))
.by('vertValue','vert')
Чтобы сравнить vertValue на вершине со значением vert на ребре.Но я не могу найти способ указать by
для «входных» значений where.
Редактировать: Попытка:
g.V("95c4a57a-9262-45b7-a905-8cca95d3ebb6").as('v').
outE().
where(eq('v')).
by('vert').
by('vertValue')
Возвращает ошибку:
Ошибка выполнения запроса Gremlin: выберите один вариант: Получить проекцию: предоставленный путь или имя свойства path () не отображаются на значение.
g.V("95c4a57a-9262-45b7-a905-8cca95d3ebb6").as('v').
outE().
where(eq('v')).
by('vertValue').
by('vert')
возвращает пустой массив!