【发布时间】:2021-12-27 05:19:45
【问题描述】:
我的应用使用 AppSync 解析器从 DDB 获取数据并将其返回到我们的前端。我们有一张表用于通知。通知可以是挂起的或默认的(非挂起的)。表本身有一个主键 notification_id,我们有一个名为 userIndex 的 GSI 来获取用户的通知,排序键是时间戳。
在应用程序中,我将所有通知显示在一个列表中,首先是待处理的,然后是默认的。鉴于用户可能有很多通知,我想实现分页以一次获取一批。我能够做到这一点的唯一方法是
- 更改查询以包含
isPending参数,我将其用作查询的过滤表达式,以仅返回 isPending 或 isNotPending 的通知。 - 存储两个“nextTokens”,每个 isPending 和 isNotPending 一个,以及相应的列表。
- 对待处理/非待处理进行单独查询,并使用过滤器返回到相应的列表。
这显然效率低下,我正在从 DynamoDB 重新读取数据。我的问题是,鉴于我的 DynamoDB 表/要求,有没有一种方法可以分页,以便我可以先获取所有待处理通知(按时间戳排序),然后使用一个查询获取所有默认通知(按时间戳排序)和一个nextToken
我见过@model 和@key 的用法,但我无法在我的应用程序中使用它。
谢谢!
【问题讨论】:
标签: graphql amazon-dynamodb aws-appsync