簡體   English   中英

AWS AppSync GraphQL API僅從DynamoDB返回20個項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM