Как получить уведомления, у которых свойство даты Edge больше, чем дата последнего посещения в Титане, с помощью Gremlin?

У меня есть пользовательские вершины, которые имеют входящие ребра уведомлений следующим образом:

код, который я использую для получения уведомлений

g.v(17929472).outE('Notification')

Ответ, который я получаю:

{
  "success": true,
  "results": [
    {
      "Type": "UserReaction",
      "PostedDate": "2016-04-15T09:03:42.8391677Z",
      "NotificationInitiatedByVertexId": "2304",
      "_id": "c7bb4-aoagw-sgl-aoao0",
      "_type": "edge",
      "_outV": 17929472,
      "_inV": 17929728,
      "_label": "Notification"
    }
  ],
  "version": "2.5.0",
  "queryTime": 15.310751
}

Всякий раз, когда пользователь просматривает уведомление, я сохраняю дату последнего просмотра и хочу использовать эту дату, чтобы получать все уведомления, присутствующие после этой даты.

Я пробовал :

g.v((5124096).outE).outE.has('PostedDate',T.gte, 2016-04-15T07:52:31.6979843Z).inV

но выдает ошибку.


person Sumit Chourasia    schedule 15.04.2016    source источник
comment
Ваш код указывает, что вы используете TinkerPop 2.x. Я настоятельно рекомендую вместо этого перейти на TinkerPop 3+, который является полностью переписанным с гораздо более мощным API.   -  person jbmusso    schedule 15.04.2016


Ответы (1)


PostedDate, кажется, возвращается как строка. Вместо этого рассмотрите возможность определения PostedDate в определении схемы как Long, а затем выполните сравнение T.gte со значением Long.

person Jason Plurad    schedule 15.04.2016
comment
мне нужно удалить предыдущие тестовые данные или это сработает, если я просто добавлю еще одно свойство как PostedDateLong вместе с существующими свойствами? - person Sumit Chourasia; 15.04.2016
comment
просто иди и попробуй - person Jason Plurad; 15.04.2016
comment
Я добавил одно ребро со следующими свойствами. 0) - person Sumit Chourasia; 15.04.2016
comment
но запрос... g.E.has('PostedDateLong',T.gte, 0) возвращает пустой набор. - person Sumit Chourasia; 15.04.2016