2

我想获取最近一小时的数据。

我怀疑如何在 postgraphile中添加>&& ?<

如果我在双引号中添加 current_timestamp 仍然会出错。

这是postgraphile屏幕。

在此处输入图像描述'后位图小时

4

1 回答 1

4

您可以在 PostGraphile 文档中阅读有关过滤的信息。要实现您指定的内容,您可以使用postgraphile-plugin-connection-filter插件,并发出如下查询:

query SessionsSince($timestamp: DateTime!) {
  allSessions(filter: {
    createdAt: { greaterThan: $timestamp }
    deviceid: { equalTo: "123" }
  }) {
    ...
  }
}

但是,请记住,GraphQL API 并非旨在向用户公开数据库的所有功能。与其公开这个原始接口,我个人会使用一个自定义查询,它会公开一个更整洁的 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
    }
  }
}
于 2019-07-02T10:35:39.237 回答