Предположим, я хочу запросить граф Нептуна с «группировкой» по одному свойству (или более), и я хочу также получить обратно список вершин.
Скажем, я хочу сгруппировать по ("город", "возраст") и тоже хочу получить список вершин:
[
{"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]]]
...