[使用Amplify Libraries的基于DynamoDB GSI的查询

问题描述 投票:0回答:1

对于Android应用程序,当我使用GSI时,我曾经使用Appsyncclient从DynamoDB查询数据。如今,我正在尝试使用Amplify Libraries来利用数据存储区功能,在阅读了文档和代码之后,我意识到Amplify Libraries不支持此类查询,除非我弄错了。到目前为止,我发现的唯一方法是使用列表并在结果上应用过滤器,但考虑到读取容量,这并不理想。有人找到有关此问题的文档吗?在这种情况下是否可以使用任何有用的插件?

为澄清起见,请参阅AWS doc中的以下架构:

类型项目@model@key(fields:[“ orderId”,“ status”,“ createdAt”])@key(name:“ ByStatus”,字段:[“ status”,“ createdAt”],queryField:“ itemsByStatus”){orderId:ID!状态:状态!createdAt:AWSDateTime!名称:字符串!}枚举状态{已交付在途中待处理未知}

通过Appsync,您可以使用:.appSyncClient()。query(itemsByStatusQuery.builder()。build())以基于ByStatus GSI查询数据。我正在使用API​​类别,在我看来,我只能使用getItem或listItems查询。我想知道是否有一种方法可以对Amplify库执行相同操作。

android graphql aws-amplify aws-appsync dynamodb-queries
1个回答
0
投票

就文档而言,您可以找到有关查询数据存储here的信息。如果您还使用API​​类别,则可以找到查询文档here

要注意的一件事是,GSI是根据您的GraphQL模型创建/使用的。 connection指令将根据架构中模型之间的关系为您生成GSI。之后,您可以使用生成的模型来发出查询,而不必显式指定GSI。

如果您对此还有其他疑问,很高兴为您提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.