Приведение типов в запросе gremlin
Как преобразовать значение типа 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
3 ответа
Спасибо, Кельвин. Наконец, этот запрос работает с AWS-Neptune GraphDB.
gremlin> g.V(1).values('age').map{(''+it).toInteger()}
==>25
вместо toInteger() мы можем использовать некоторые другие методы Java, подобные этому.
Мне любопытно, почему для начала вы храните возраст в виде строки, но, тем не менее, если вы можете использовать лямбду, вы можете выполнить приведение внутри шага карты. Вот пример из моего графика воздушных маршрутов (взлетно-посадочные полосы - целочисленный тип):
gremlin> g.V(3).values('runways').map {(String)it}.next().class
==>class java.lang.String
Ура Кельвин
Neptune не поддерживает лямбда-шаги.
Если я попробую выполнить запросы выше, я получу:
Не удалось интерпретировать запрос Gremlin: синтаксический анализ запроса не удался...
Это то, что поддерживалось в прошлом?