Хм, единственный (безобразный) обходной путь, о котором я могу подумать, это:
g.V().
group().
by('id').
by(groupCount().by('name')).
unfold().
match(__.as('kv').select(keys).as('k'),
__.as('kv').select(values).unfold().as('v')).
project('key','value').
by(union(select('k'), select('v').by(keys)).fold()).
by(select('v').by(values))
Таким образом, в основном это вложенная группировка по примитивным значениям, за которой следует развертывание и перегруппировка в карту, состоящую только из примитивных ключей. Результат будет выглядеть примерно так:
==>[key:[id1,name1],value:1]
==>[key:[id2,name2],value:2]
==>[key:[id3,name3],value:1]
...
UPDATE
Поскольку CosmosDB не поддерживает match()
, запрос будет выглядеть следующим образом:
g.V().
group().
by('id').
by(groupCount().by('name')).
unfold().as('kv').
select(keys).as('k').
select('kv').select(values).unfold().as('v').
project('key','value').
by(union(select('k'), select('v').by(keys)).fold()).
by(select('v').by(values))