Получить данные после заданной даты создания
Я хочу получить данные за последний час.
Я сомневаюсь как добавить >
&& <
в постграфе?
если я добавлю current_timestamp в двойных кавычках, все еще получаю ошибку.
Вот постграфский экран.
ht tps:https://stackru.com/images/82501c0db3b24f773becc8e0223a2dd8a9b515c3.png час в постграфах
1 ответ
Вы можете прочитать о фильтрации в документации PostGraphile. Чтобы достичь того, что вы указали, вы можете использовать https://github.com/graphile-contrib/postgraphile-plugin-connection-filter и выполнить запрос, такой как этот:
query SessionsSince($timestamp: DateTime!) {
allSessions(filter: {
createdAt: { greaterThan: $timestamp }
deviceid: { equalTo: "123" }
}) {
...
}
}
Однако имейте в виду, что API-интерфейс GraphQL не предназначен для того, чтобы предоставлять пользователям всю функциональность вашей базы данных. Вместо того, чтобы показывать этот необработанный интерфейс, я лично использовал бы пользовательский запрос, который предоставил бы намного более аккуратный API; что-то вроде:
create function recent_sessions(deviceid text) returns setof sessions as $$
select *
from sessions
where sessions.deviceid = recent_sessions.deviceid
and created_at > NOW() - interval '1 hour';
$$ language sql stable;
Затем вы бы запросили это так:
{
recentSessions(deviceid: "123") {
nodes {
deviceid
}
}
}