Как вы возвращаете один объект в отличие от одного элемента в массиве?
От 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 ответ
Я не совсем понимаю, что вы хотите, но ваш обход должен возвращать только одно значение "имя", а не список значений "имя", хотя я думаю, что я предпочел бы второе, так как вы сказали, что хотите вернуть первый элемент. Я бы переписал это следующим образом:
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.