Запрос Гремлина, чтобы перечислить все ребра с одной и той же меткой
Я пробовал разные запросы, соответствующие моему запросу, но не смог их найти. Извините, это дубликат. У меня две вершины и. Имеется граница, соединяющая от к со свойствами метки.
{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()
в других ваших примерах, но не в первом.