如何返回单个对象而不是数组中的单个项目?

时间:2018-11-30 00:14:57

标签: gremlin tinkerpop3

从遍历器中,如果我只想要顶点列表中的第一项,该如何将其作为对象返回?

我尝试过:

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 :(得分:1)

我并没有完全按照您的要求,但是您遍历的任何一个都应该只返回一个“名称”值,而不返回“名称”值列表,尽管我认为我更喜欢第二个,因为您说过您想要第一个退回的商品。我将重写如下:

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

您刚刚在此处粘贴了一些Gremlin,但是您也可以next() Iterator来获得单个第一个对象:

String name = g.V().has("Project", "id", "someid").
                ...
                limit(1).next()

如果由于某种原因在返回值中看到其他行为,请更新您的问题以包括示例数据脚本(example),以便在Gremlin Console中轻松重现。