Gremin valueMap () все значения внутри списков - PullRequest
0 голосов
/ 30 марта 2019

Скажи, что я g.V().has("id", 1).valueMap().next()

Результат - все в списках:

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

Как мне развернуть все внутренние списки так, чтобы он показывал:

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

1 Ответ

2 голосов
/ 30 марта 2019

Я думаю, что вы уже ответили на свой вопрос в некотором смысле - вы используете unfold()

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

Этот синтаксис работает только на 3.4.0, когда by() модулятор был добавлен к valueMap().В более ранних версиях вы все еще можете сделать это, но это не так красиво:

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()))
...