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

0

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

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

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

1 Answer
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
EXPERT
answered 5 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions