Как вы возвращаете один объект в отличие от одного элемента в массиве? - PullRequest
0 голосов
/ 30 ноября 2018

От traverser, если я просто хочу первый элемент в списке вершин, как бы я мог вернуть его в качестве объекта?

Я пытался:

g.V()
.has("Project", "id", eq("someid"))
.outE("Contains")
.inV()
.hasLabel("Goal")
.sample(1)
.values("name")

Также пробовал:

g.V()
.has("Project", "id", eq("someid"))
.outE("Contains")
.inV()
.hasLabel("Goal")
.limit(1)
.values("name")

Я также пробовал сбросить, но ни один из них не работал для меня.Есть идеи?

1 Ответ

0 голосов
/ 30 ноября 2018

Я не совсем понимаю, что вы хотите, но ваш обход должен возвращать только одно значение «имя», а не список значений «имя», хотя я думаю, что я предпочел бы второе, так как вы сказали, что хотите первоеТовар возвращен.Я бы переписал это следующим образом:

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.

...