Gremlin 的 valueMap() returns 带有 JS 和 Neptune 的空对象

Gremlin's valueMap() returns an empty object with JS and 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.valueMap()).toList();

但他们俩returns

[
  {},
  {}
]

我不明白,因为如果我这样做:

g.V().hasLabel("myLabel").map(p.values().fold()).toList();

我得到了一个我想要的列表,但只有值。

事实证明 Gremlin return 是一个 Map 而不是对象,所以我需要先将响应转换为对象才能使用它。

我是这样做的:

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(),因为最后一个 return 会将值作为数组而不是实际值。