Мне нужно экспортировать вершину с некоторыми из связанных с ней. Без всякой проекции - просто как есть (как дамп данных). Чего я хочу добиться, так это удалить лишние вершины в результате (документ json). Предположим, что существует структура графа:
g.V().has('id', '000-000').as('a').out().as('b').out().as('c').select('a','b','c')
==>[a:v[1],b:v[4],c:v[5]]
==>[a:v[1],b:v[4],c:v[3]]
Я хотел бы получить результат в формате, например:
==>[a:v[1],b:v[4],[c:v[5], c:v[3]]]
Если будет больше b
или c
вершин, то примерно так:
==>[a:v[1],[b:v[4],b:v[7]],[c:v[5], c:v[3], c:v[9]]]
Просто чтобы уменьшить размер выходных данных (в json).
В настоящее время я получаю что-то вроде этого:
[{
"a": {},
"b4": {},
"c5": {}
},
{
"a": {},
"b4": {},
"c3": {}
}]
А хотелось бы иметь:
[{
"a": {},
"b": [
{b4},
{b4}
],
"c": [
{c5},
{c3}
]
]}
Какие операторы я должен использовать для достижения этого?
Лучший способ сделать это — использовать шаг project()
в Gremlin. Если вам нужен список значений в каждом поле, вы можете использовать fold()
, чтобы поместить их в список. Пример:
g.('000-000').project('a','b','c')
.by()
.by(out().fold())
.by(out().out().fold())