变量 - 海王星上的 Gremlin

Variables - Gremlin on 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 数据库上尝试了同样的事情,并且变量赋值有效。我错过了什么?

如您所见,在 :remote console 模式下使用控制台连接到 Neptune 时无法分配变量。您可以做的一件事是在本地模式下使用控制台,但连接到服务器,发出诸如 :> g.V().limit(1) 之类的查询,并且可以通过控制台维护的名为 [=14= 的特殊变量访问查询结果].这是一个简单的例子:

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

这是一个以列表作为结果的示例。

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

如果你想使用 Groovy 来 post 在无法分配变量的能力时在控制台中处理一些结果,我有时会发现这很有用。