Функция Gremlin valueMap() возвращает пустой объект с JS и Neptune.
Я пытаюсь получить все узлы и их свойства с помощью gremlin и js, у которых есть конкретная метка.
Он должен вывести что-то вроде:
[
{
p1:v1,
p2:v2,
px:vx
},
{
p1:v1,
p2:v2,
px:vx
}
]
Я перепробовал миллион вещей, но думаю, с этим хочется поработать:
g.V().hasLabel("myLabel").valueMap();
или
g.V().hasLabel("myLabel").map(p.mapValues()).toList();
Но они оба возвращаются
[
{},
{}
]
Я не понимаю, потому что если я сделаю это:
g.V().hasLabel("myLabel").map(p.values().fold()).toList();
У меня есть список, который я хочу, но только со значениями.
1 ответ
Оказывается, Гремлин возвращает карту вместо объекта, поэтому мне нужно было передать ответ как объект, прежде чем я смогу его использовать.
Вот как я это делаю:
const response = await g.V().hasLabel("myLabel").local(p.properties().group().by(p.key()).by(p.value())).toList();
const asObject = response.map(val=>Object.fromEntries(val));
Я также выбрал
local
вместо
valueMap()
потому что последний будет возвращать значения в виде массивов вместо фактического значения.