Gremlin: возвращение valueMap / проецируемых свойств из группы по запросу

Допустим, у меня есть два типа вершин: родительские и дочерние. Я хочу иметь возможность запрашивать все родительские вершины и группировать всех дочерних элементов по их связанному родительскому элементу вместе со свойствами для каждого дочернего элемента. Предположим, что у родителей несколько детей, а у детей может быть только 1 родитель. Родитель всегда будет иметь родительскую метку, но у дочерних элементов могут быть разные метки.

Так что прямо сейчас, если я сделаю

g.V().hasLabel('parent').group().by(__.inE().outV()).toList()

Я вернусь:

[{v[Child_A]: [v[Parent_A]], v[Child_B]: [v[Parent_B]]}]

Я хочу противоположную иерархию вместе с картой значений / прогнозируемыми значениями дочернего элемента, например:

[Parent_A: Child_A1: {properties}, Child_A2: {properties}], [Parent_B: Child_B1: {properties]

Использование python gremlin с Нептуном, если это важно.


person dl8    schedule 19.08.2019    source источник


Ответы (1)


Если я понял ваш желаемый результат, я думаю, что это то, что вы ищете:

g.V().hasLabel('parent').group()
   .by(__.values('name'))
   .by(__.in_().group().by(__.values('name')).by(__.valueMap(true)))

person noam621    schedule 20.08.2019
comment
Это работает, хотя должно быть .in_ (), а также .valueMap () - person dl8; 20.08.2019
comment
О, подчеркивания не отображались в моем вышеупомянутом комментарии из-за форматирования stackoverflow, но он также должен быть перед картой значений - person dl8; 20.08.2019