这是我的schema.graphql的样子。
type Post
@model
@auth(
rules: [
{ allow: owner }
]
) {
id: ID!
author: User! @connection(name: "UserPosts")
content: AWSJSON!
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
生成的GraphQL查询如下所示
export const listPosts = `query listPosts(
$filter: ModelPostFilterInput
$limit: Int
$nextToken: String
) {
listPosts(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
id
author {
id
uuid
}
content
createdAt
updatedAt
}
nextToken
}
}
`;
我正在呼叫listPosts
来查询帖子列表,但不确定如何将日期范围实现到我用来获取数据的以下查询中。
await API.graphql(graphqlOperation(queries.listPosts, {limit: 10, nextToken: nextToken}))
是否可以在上面的查询中添加两个字符串start: TODAY
和end: 30 DAYS BEFORE TODAY
并使其返回30条最新帖子?
答案 0 :(得分:2)
答案 1 :(得分:2)
我没有尝试使用Richard提到的新@key
指令。
到目前为止,我使用的解决方案是将参数传递给解析器,并在解析器级别实现查询表达式。
例如,我要查询将来的所有预订(当预订开始日期为>今天时),
#set( $todayString = $util.time.nowISO8601().substring(0, 10) )
{
"version": "2017-02-28",
"operation": "Query",
"query": {
"expression": "guestId = :gId AND startDate > :startDate",
"expressionValues": {
":gId": $util.dynamodb.toDynamoDBJson($ctx.args.guestId),
":startDate": $util.dynamodb.toDynamoDBJson($todayString)
}
},
"index": "guestId-startDate-index"
}