приведение типов в запросе гремлина - PullRequest
0 голосов
/ 10 мая 2018

Как преобразовать значение типа String в тип Integer в консоли gremlin с помощью AWS Neptune GDB. У меня есть свойство age со строковым значением, которое необходимо преобразовать в тип Integer для математических операций в запросе. все предложения приветствуются.

Я попробовал ниже вопросы, предложенные kelvin. Но получили эти исключения.

    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

Мое требование - привести значение String к Integer / long

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Спасибо, Кельвин. Наконец, этот запрос работает с AWS-Neptune GraphDB.

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

вместо toInteger (), мы можем использовать некоторые другие методы Java, подобные этому.

0 голосов
/ 10 мая 2018

Мне любопытно, почему для начала вы храните возраст в виде строки, но, тем не менее, если вы можете использовать лямбду, вы можете выполнить приведение внутри шага карты. Вот пример из моего графика воздушных маршрутов (взлетно-посадочные полосы - целочисленный тип):

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

Приветствие Kelvin

...