【发布时间】:2021-09-08 18:45:30
【问题描述】:
我正在尝试编写一个架构,以便我可以查询由多个键过滤、按自定义键排序和分页的模型。
我的模型示例:
type Article {
id: ID!
category: String!
area: String!
publishOn: AWSDate!
}
我想做的查询的一个例子是:检索所有Articles,它们是给定category和area的一部分,由publishOn在10个项目的块中按降序返回每个(实现分页服务器端,并有一个轻量级的用户界面)。
响应还应包含nextToken 属性,该属性可用于加载过滤后的文章列表的“下一页”。
我在使用自动生成的架构时遇到了多个问题,并且找不到手动实施适用于所有我想做的解决方案的方法。我试着列出问题所在:
- 过滤
假设我要查询属于“假日”类别的 10 篇文章:
listArticles(filter: {category: {eq: "Holiday} }, limit: 10)
我不会获得与该类别匹配的前 10 篇文章,但 AppSync 似乎选择了表中的前 10 个项目,然后它按过滤条件过滤了这 10 个项目。 换句话说,过滤和排序的应用顺序似乎与预期相反。预期:先按过滤条件过滤表,然后返回过滤结果集的前10项。
- 排序
我找不到使用 AppSync 添加排序的方法,所以我添加了可搜索:
type Article (
@searchable
) {
id: ID!
category: String!
area: String!
publishOn: AWSDate!
}
现在,如果我按日期排序,该键将用作 nextToken 并停止分页。这是一个已知问题:https://github.com/aws-amplify/amplify-cli/issues/4434
对于如何找到这些错误的解决方法,您有什么好的建议吗?我深入研究文档和几个问题,但没有想出一个行之有效的解决方案......
提前致谢,
马特奥
【问题讨论】:
标签: amazon-web-services aws-amplify aws-appsync