AWS AppSync 响应排序结果?

Posted

技术标签:

【中文标题】AWS AppSync 响应排序结果?【英文标题】:AWS AppSync response sorted result? 【发布时间】:2019-02-23 05:15:36 【问题描述】:

我想对 $ctx.result.items 进行排序并响应 sortedResult我不想在 Response Mapping 中手动编写 Velocity Template Language 以对 $ctx.result.items 进行排序。有没有更好的方法来响应 AWS AppSync 中的 sortedResult ?

【问题讨论】:

【参考方案1】:

您希望进行哪种类型的排序?如果它使用 DynamoDB 解析器升序/降序,那么您可以在请求模板上的 ScanIndexForward 参数上设置它:https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html

【讨论】:

【参考方案2】:

(如果您找到了解决方案,我希望这对其他人有所帮助)

这取决于您如何为 DynamoDB 表设计 GSI 或 LSI。

如here 所述,“DynamoDB 在散列主键属性上构建一个无序散列索引,并在范围主键属性上构建一个排序范围索引。”

这里的哈希索引和分区键一样,范围索引和排序键(旧词和新词)一样。

类似的文字表述为here - “所有具有相同分区键值的项目都存储在一起,按排序键值排序。”

因此,如果您以上述方式将 GSI 或 LSI 添加到 DynamoDB 表中(例如,您的所有产品 ID 都是哈希/分区键,创建时间是范围/排序键,您需要按创建时间对产品进行排序)可以使用类似于example defined in this page of ***的东西。

【讨论】:

以上是关于AWS AppSync 响应排序结果?的主要内容,如果未能解决你的问题,请参考以下文章

时间戳范围之间的 AWS Appsync 订阅过滤器

AWS Appsync 订阅未更新我的组件

尽管成功的 200 响应,AWS Appsync GraphQL 查询静默失败

即使禁用离线,AWS AppSync 查询也会返回缓存响应

用于塑造响应数据的 AWS AppSync 查询(类似于 SQL 中的 Group By)

AppSync $util.autoId() 和 DynamoDB 分区和排序键设计问题