答案 0 :(得分:1)
您可以阅读有关filtering in the PostGraphile docs的信息。要实现您指定的功能,可以使用postgraphile-plugin-connection-filter插件,并发出如下查询:
query SessionsSince($timestamp: DateTime!) {
allSessions(filter: {
createdAt: { greaterThan: $timestamp }
deviceid: { equalTo: "123" }
}) {
...
}
}
但是,请记住,GraphQL API并非旨在向用户公开数据库的所有功能。我个人没有使用custom query,而是公开了一个更整洁的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
}
}
}