Предположим, что я хочу запросить граф Нептуна с "group-by" для одного свойства (или более), и я хочу получить список вершин тоже.
Допустим, я хочу группировать по ("city", "age") и тоже хочу получить список вершин:
[
{"city": "SFO", "age": 29, "persons": [v[1], ...]},
{"city": "SFO", "age": 30, "persons": [v[10], v[13], ...]},
...
]
Или верните вершину с ее свойствами (как valueMap
):
[
{"city": "SFO", "age": 29, "persons": [[id:1,label:person,name:[marko],age:[29],city:[SFO]], ...]},
...
]
AFAIK, Нептун не поддерживает лямбда-выражения и назначения переменных. Есть ли способ сделать это с одним обходом и без лямбд?
Обновление: Я могу получить вершины, но без их свойств (с valueMap
).
Запрос:
g.V().hasLabel("person").group().
by(values("city", "age").fold()).
by(fold().
match(__.as("p").unfold().values("city").as("city"),
__.as("p").unfold().values("age").as("age"),
__.as("p").fold().unfold().as("persons")).
select("city", "age", "persons")).
select(values).
next()
Выход:
==>[city:SFO,age:29,persons:[v[1]]]
==>[city:SFO,age:27,persons:[v[2],v[23]]]
...