gremin valueMap()列表内的所有值

时间:2019-03-29 21:33:22

标签: gremlin janusgraph

说我g.V().has("id", 1).valueMap().next()

结果全部在列表中

{
  "id": [1],
  "name" ["node1"]
}

如何展开所有内部列表,使其显示为:

{
  "id": 1,
  "name" "node1"
}

1 个答案:

答案 0 :(得分:2)

我认为您已经在某种意义上回答了您的问题-您使用了unfold()

g.V().has("id",1).
  valueMap().
    by(unfold())

该语法仅在by()调制器was added to valueMap()上适用于3.4.0。在早期版本中,您仍然可以执行此操作,但是它并不那么漂亮:

g.V().has("id",1).
  valueMap().
  unfold().
  group().
    by(keys).
    by(select(values).unfold())

如您所见,您基本上必须解构Map,然后用group()对其进行重构。如果您有多个顶点,则需要隔离unfold(),如此:

g.V().
  map(valueMap().
      unfold().
      group().
        by(keys).
        by(select(values).unfold()))