【发布时间】:2021-10-22 22:49:07
【问题描述】:
这是一个与this one类似的问题,但由于没有人回答,我想看看我是否能得到一些答案。
我开始探索 graphql 和 amplify,因为 firestore 有一些我认为限制了我的应用程序的限制。但是我遇到了这种情况,我想以有限的结果进行查询,结果不是我所期望的。我的数据库只有 13 条记录。而且我每次需要得到 12 个元素。
所以,如果我运行这个查询:
query MyQuery {
listItems(filter: {type: {eq: "ropa"}}) {
items {
price
status
type
id
name
}
nextToken
}
}
这将返回 4 个类型值等于“ropa”的项目。到目前为止,一切都很好。但是如果我添加一个 12 的限制,像这样:
query MyQuery {
listItems(filter: {type: {eq: "ropa"}}, limit: 12) {
items {
price
status
type
id
name
}
nextToken
}
}
我只会得到其中的 3 个结果和一个 nextToken,所以我必须再次传递相同的查询,但这次使用 nextToken 值来获得最后一个结果。
据我了解,当您限制结果时,查询首先会获取限制中指定的元素数量并过滤它们以匹配您的查询。
在每次到达列表末尾时我都必须让 12 个元素填满屏幕的情况下,我必须多次调用此查询,并且必须设计一种解决方法来填充临时列表,所以当它达到 12 个项目,然后我将它们推入我的数组,依此类推。如果我添加排序方向或其他过滤器,结果会减少,并且在我看来,过程变得更加复杂和低效。
这是唯一的方法吗?
【问题讨论】:
标签: graphql amazon-dynamodb aws-amplify