[英]AWS AppSync GraphQL API only return 20 items from DynamoDB
我嘗試對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條記錄,這應該不是問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.