Получить данные после заданной даты создания

Я хочу получить данные за последний час.

Я сомневаюсь как добавить > && < в постграфе?

если я добавлю 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
    }
  }
}
Другие вопросы по тегам