如何使用单个AppSync列表查询来返回所有记录?

0

【以下的问题经过翻译处理】 我的AppSync列表查询在应用过滤器后未返回DynamoDB表中的全部记录。

背景是这样的,我有一个包含大约250,000条数据的主要城市表格。当筛选该表格仅显示例如英国的城市时,查询并未返回所有记录,因为AppSync会将扫描操作限制为10个项目。如果我将查询限制变量添加到1,000,那么我在英国只会得到少于1,000个城市。似乎查询首先应用限制而不是过滤器,而不是出于某种原因的另一种方式…

我知道我可以像亚马逊云科技博客中概述的那样使用“next token”AppSync查询返回错误的项目数量。然而,这意味着我将需要执行多个调用。**有没有一种方法可以使用单个AppSync查询返回所有经过筛选的城市?**提前感谢!

profile picture
专家
已提问 5 个月前23 查看次数
1 回答
0

【以下的回答经过翻译处理】 我想分享一个方法,我在CITY表中使用了全局二级索引(GSI),这样我就可以按国家代码(见下文)查询城市。然后,使用分页来收集其余的城市,因为API不返回超过1MB的数据。对于那些刚开始入门的人,我真的很喜欢这个YouTube视频,它解释了Scan和Query之间的区别。

type CITY @model {
id: ID!
country_code: String! @index(name: "byCountry", queryField: "listCitiesbyCountry")
name: String!
code: String!
state: String
...
}
profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则