Вычитание в запросе Гремлин (AWS Нептун) - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь создать запрос gremlin для AWS Neptune , который проверяет определенное свойство на узле (lastUpdated) и возвращает все узлы, значения которых меньше определенного числа,lastUpdated в данном случае является меткой времени эпохи, и я пытаюсь найти все узлы, которые на LastUpdated на 90 дней меньше текущей метки времени.

Вот запрос, который я написал:

g.V().hasLabel('nodelabel').hasNot('lastUpdated',P.gt(1544916150)).count()

Toсделать этот запрос динамическим, чтобы при каждом его запуске я получал все узлы старше 90 дней и менял его на следующий:

g.V().hasLabel('nodelabel').has('lastUpdated',not(P.gt(1552798296-7776000))).count()

, где 1552798296 - значение current_date, а 7776000 - количество секунд в 90 днях.

Очевидно, вычитание не так просто в Гремлин.Любые советы / предложения о том, как я могу написать этот запрос Гремлин?

Спасибо

1 Ответ

0 голосов
/ 19 марта 2019

TinkerPop представил шаг math (), который был выпущен на несколько пунктов назад.

Вы можете сделать что-то вроде этого:

gremlin> g.V().has('n').valueMap(true)
==>[id:58855,label:test,n:[5]]
==>[id:58857,label:test,n:[10]]  

gremlin> g.V().values('n')
==>5
==>10

gremlin> g.V().values('n').math('_ -5')
==>0.0
==>5.0

gremlin> g.V().where(values('n').math('_ -5').is(gt(0)))
==>v[58857]   
...