Neo4j: Как вы используете диапазон свойств datetime в операторе для запроса за последние 15 минут? - PullRequest
1 голос
/ 16 января 2020

Я работаю с данными электронной почты и хотел бы использовать существующий запрос и добавить к нему. Я хотел бы добавить and where lastseen(which is stored as DateTime) within the last 15 minutes, не вводя полный диапазон даты и времени в выражении cypher. Что-то вроде (lastseen - (datetime () - 15MM)).

Ниже приведен пример Sender свойств узлов:

<id>:12662  domain:corp.com  firstseen:"2020-01-14T06:02:33Z"  lastseen:"2020-01-14T06:25:45Z" name:person@corp.com  timesseen:300

Ниже приведен запрос, который я хотел бы включить доля времени в:

MATCH path = (s:Sender)-->(a:Attachment)-->(:Recipient)
WITH s, COUNT(DISTINCT a) AS cnt, COLLECT(path) AS paths
WHERE cnt >= 2
return paths

1 Ответ

1 голос
/ 16 января 2020

Вы можете использовать функцию duration, чтобы получить свой диапазон.

Маска длительности PT900S составляет 900 секунд.

WITH datetime() AS end 
WITH end, end - duration("PT900S") AS start
RETURN start, end, duration.between(end, start)

Включенный в ваш запрос может выглядеть примерно так ...

MATCH path = (s:Sender)-->(a:Attachment)-->(:Recipient)
WHERE datetime() - duration("PT900S") <= s.lastseen <= datetime()
WITH s, COUNT(DISTINCT a) AS cnt, COLLECT(path) AS paths
WHERE cnt >= 2
RETURN paths
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...