Функция 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() потому что последний будет возвращать значения в виде массивов вместо фактического значения.

Другие вопросы по тегам