Я не совсем понимаю, что вы хотите, но ваш обход должен возвращать только одно значение «имя», а не список значений «имя», хотя я думаю, что я предпочел бы второе, так как вы сказали, что хотите первоеТовар возвращен.Я бы переписал это следующим образом:
g.V().has("Project", "id", "someid").
out("Contains").hasLabel("Goal").
values("name")
limit(1)
Вы просто вставили сюда немного Гремлин, но вы также можете next()
Iterator
получить этот первый объект:
String name = g.V().has("Project", "id", "someid").
...
limit(1).next()
Если в возвращаемых значениях по какой-то причине вы видите какое-то другое поведение, обновите ваш вопрос, включив в него пример сценария данных ( пример ), чтобы его можно было легко воспроизвести в консоли Gremlin.