Гремлин - Нептун - Как правильно вернуть свойства набора вершин - PullRequest
2 голосов
/ 27 мая 2020

У меня есть вершина со следующими свойствами:

Имя - Тип - Мощность

prop_1 - String - Single

prop_2 - String - Set

Когда я возвращаю карту значений вышеупомянутой вершины, значения не возвращаются в правильном формате.

  • Использование valueMap (). By (deploy ()) возвращает prop_1 правильно как одно строковое значение, но возвращает только первый элемент prop_2, который является набором String.
  • Использование просто valueMap () возвращает prop_1 как массив String и все значения prop_2 как массив String

Я знаю, что если Я явно упоминаю свойства одиночной мощности, которые должны быть развернуты, я могу получить желаемый результат, но используемый нами запрос gremlin является generi c (динамически генерируемый), который используется для разных вершин с разными свойствами, и эти свойства не могут быть явно упомянуты в операторы return.

Есть ли способ вернуть свойства single и set carinality, которые будут возвращены с правильным типом данных repres влечение?

1 Ответ

5 голосов
/ 27 мая 2020

Вы можете сделать это на основе количества значений в свойстве.

(это может вызвать несоответствие с установленным значением, которое содержит только 1 значение ...)

g.V().valueMap().by(choose(
      count(local).is(eq(1)),
      unfold()
      identity()
    ))

пример https://gremlify.com/@noam621 / b9

...