Pau*_*l C 4 gremlin tinkerpop amazon-neptune
我位于 Gremlin 控制台并连接到 AWS Neptune 数据库
g.V().hasLabel('Risk').toList()
提供了预期的结果,但是当我尝试将结果分配给变量时
risks = g.V().hasLabel('Risk').toList()
我收到下面的消息 - 令牌识别错误显然会出现在变量名称上,因为当我更改变量名称时,消息的位置和“at”部分会发生变化。
{"requestId":"650d7c4b-44d1-43f8-b9a3-fbf085cc3ead","code":"MalformedQueryException","detailedMessage":"Query parsing failed at line 1, character position at 3, error message : token recognition error at: 'ks'"}
我在 Tinkerpop 数据库上尝试了同样的操作,并且变量分配有效。我缺少什么?
正如您所注意到的,当控制台处于模式下连接到 Neptune 时,您无法分配变量:remote console。您可以做的一件事是使控制台处于本地模式但连接到服务器,发出一个查询,例如:> g.V().limit(1),查询的结果将可以通过控制台维护的一个名为 的特殊变量来访问result。这是一个简单的例子:
gremlin> :> g.V().count()
==> 3653
gremlin> result
==> result{object=3653 class=java.lang.String}
gremlin println result['object']
[3653]
gremlin> r = result['object'][0]
gremlin> println r
3653
Run Code Online (Sandbox Code Playgroud)
这是一个结果列表的示例。
gremlin> :> g.V('1','2').values('city').toList()
==>Atlanta
==>Anchorage
gremlin> result
==>result{object=Atlanta class=java.lang.String}
==>result{object=Anchorage class=java.lang.String}
gremlin> result.each {println "City was : " + it['object']}
City was : Atlanta
City was : Anchorage
Run Code Online (Sandbox Code Playgroud)
如果您想在无法分配变量的情况下使用 Groovy 在控制台中后处理某些结果,我有时会发现这很有用。