Запрос Гремлина, чтобы перечислить все ребра с одной и той же меткой

Я пробовал разные запросы, соответствующие моему запросу, но не смог их найти. Извините, это дубликат. У меня две вершины и. Имеется граница, соединяющая от к со свойствами метки. {name: "Test1"}. Аналогично есть еще одно ребро, соединяющееся от Vertex1 к Vertex2 с тем же ярлыком, что и relation но свойства как {name: "Test2"}. На прилагаемом рисунке показаны вершины и их соотношение.

Как перечислить все отношения?

Запрос1: g.V('Vertex1').outE().hasLabel('relation') => Перечислить только первое отношение, т.е. отношение со свойствами {name: "Test1"}.

Query2: g.V('Vertex1').outE().as("c").select("c").by(valueMap()).toList() => Перечислите все отношения, включая край с меткой «отношение».

Если я немного настрою, чтобы включить имя метки для запроса как g.V('Vertex1').outE('relation').as("c").select("c").by(valueMap()).toList()=> затем снова получается только первое ребро. Я пытаюсь получить только свойства края с меткой "отношение" и его свойства, например

      {id=Edge1-ID1, label=relation, name=Test1}

{id=Edge1-ID2, label=relation, name=Test2}

1 ответ

Решение

Я не уверен, что не так, но ваша первая попытка, по сути, правильная, учитывая синтаксис Gremlin:

      gremlin> g.addV().property(id,'Vertex1').as('v1').
......1>   addV().property(id,'Vertex2').as('v2').
......2>   addE('relation').from('v1').to('v2').property('name','Test1').
......3>   addE('relation').from('v1').to('v2').property('name','Test2').iterate()
gremlin> g.V('Vertex1').outE('relation')
==>e[0][Vertex1-relation->Vertex2]
==>e[1][Vertex1-relation->Vertex2]
gremlin> g.V('Vertex1').outE('relation').values('name')
==>Test1
==>Test2

Моя единственная мысль здесь заключается в том, что, возможно, вы не полностью повторяете свой обход ? Вы сделали toList() в других ваших примерах, но не в первом.

Другие вопросы по тегам