我尝试对AWS AppSync运行查询以获取Todos的所有列表,这些列表在DynamonDB中大约有50个项目,但结果仅在我的Web中返回20个项目,AppSync是否有任何限制?
我使用了放大库来运行查询:
API.graphql(
graphqlOperation(queries.listTodos)
)
我如何从dynamoDB中获得所有50个项目?
查询:
export const listTodos = `query ListTodos(
$filter: TableTodoFilterInput
$limit: Int
$nextToken: String
) {
listTodos(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
id
dateIn
dateOut
reservedBy
status
ttl
createdON
}
nextToken
}
}
`;
样本数据:
"items": [
{
"id": "ad2ce180-eae4-4bbd-abbc-00375e2dabd9",
"dateIn": "2019-03-13",
"dateOut": "2019-03-16",
"reservedBy": "Harith",
"status": "Pending Payment",
"ttl": 1552357596,
"createdON": "2019-03-11T02:26:36.608Z"
},
在您的listTodos
解析器的“请求”映射模板中,可能包含以下行:
"limit": $util.defaultIfNull(${ctx.args.limit}, 20),
将此限制更改为20以外的值,或者如果您不希望限制结果,则将其设置为很高。(注意:一旦您的结果集达到1 MB,DynamoDB就会自动分页。)但是,通常最好的做法是为Scan操作设置某种合理的限制,因为Scan操作会消耗表的预配置读取容量的100%并限制其他请求到您的桌子。随着表大小的增加,这一点尤其重要,但是对于50条记录,这不应该成为问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句