繁体   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