在gremlin-javascript中将“项目”与“选择”一起使用会引发错误

时间:2019-05-19 20:13:26

标签: gremlin amazon-neptune

我有一个简单的查询,当我在控制台上运行它时可以得到预期的结果,但是当我使用gremlin node.js驱动程序/ gremlin-javascript在aws-neptune DB中运行它时失败。

查询在控制台中成功运行

g.V().hasLabel('item').project('id').by(id).select(values)
==>[item1]
==>[item2]
==>[item3]

我尝试使用导入“ gremlin.process.t”在gremlin-javascript中运行相同的查询

g.V().hasLabel('item').project('id').by(gremlin.process.t.id).select(gremlin.process.t.values)

但是我收到以下错误“ detailedMessage”:“ null:select([null])”}

error Error: Server error: {"requestId":"0521e945-04fb-4173-b4fe-0426809500fc","code":"InternalFailureException","detailedMessage":"null:select([null])"} (599)

使用gremlin-javascript中的select来使用项目的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

请注意,values不在T上,而在Column上:

gremlin> values.class
==>class org.apache.tinkerpop.gremlin.structure.Column$2

因此,您需要在Javascript中引用该枚举:

const t = gremlin.process.traversal.t
const c = gremlin.process.traversal.column
g.V().hasLabel('item').
  project('id').
    by(t.id).
  select(c.values)

您可以阅读有关gremlin-javascript here的常见导入信息。