在 gremlin 查询中进行类型转换

type casting in gremlin query

如何使用 AWS Neptune GDB 在 gremlin 控制台中将字符串值转换为整数类型。 我有 属性 'age' 和字符串值,需要将其转换为整数类型以进行查询中的数学运算。 感谢所有建议。

我尝试了 kelvin.But 建议的以下查询,但遇到了这些异常。

    gremlin> g.V(1).values('age').map{(String)it}.next()
    Script336735.groovy: 1: [Static type checking] - Inconvertible types:cannot cast org.apache.tinkerpop.gremlin.process.traversal.Traverser <E2 extends java.lang.Object> to java.lang.String
    gremlin> g.V(1).values('age').map{(Integer)it}.next()
    Script336963.groovy: 1: [Static type checking] - Inconvertible types: cannot cast org.apache.tinkerpop.gremlin.process.traversal.Traverser <E2 extends java.lang.Object> to java.lang.Integer

我的要求是将字符串值转换为 Integer/long

我很好奇您为什么将年龄存储为字符串开始,但话虽如此,如果您能够使用 Lambda,则可以在映射步骤中进行强制转换。这是我的航线图的示例(跑道是整数类型):

gremlin> g.V(3).values('runways').map {(String)it}.next().class
==>class java.lang.String

干杯 开尔文

谢谢开尔文。 最后,此查询适用于 AWS-Neptune GraphDB。

gremlin> g.V(1).values('age').map{(''+it).toInteger()}
==>25

除了 toInteger(),我们可以使用其他一些类似的 java 方法。

根据https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html#w3aac12c22c10c15c47

Neptune does not support Lambda Steps.

如果我尝试上面的查询,我得到:

Failed to interpret Gremlin query: Query parsing failed...

这是过去支持的东西吗?