首页 > 解决方案 > 使用键以外的值执行获取查询

问题描述

我是否可以使用 get 查询来查询主键以外的值?因为似乎我只能传入 id 列,但是我无法使用 id 列以外的列执行 get 查询。或者我可以使用过滤器之类的普通列表查询来做到这一点吗?谢谢你的帮助!

标签: graphqlaws-amplifyaws-appsync

解决方案


是的,您可以通过 AppSync 发出任何 DynamoDB 查询。这提供了一个很好的介绍,涵盖了 PutItem、UpdateItem 和 GetItem https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-resolvers.html。如果您需要通过一个键获取多个值,那么您应该使用 DynamoDB 查询操作https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html#aws- appsync-resolver-mapping-template-reference-dynamodb-query

使用 DynamoDB 时,您需要将访问模式烘焙到 DynamoDB 表和二级索引的关键架构中。例如,如果您想通过“email”获取记录,那么您应该创建一个哈希键为“email”的表。然后,您将能够通过“电子邮件”执行 GetItem 操作。如果您需要通过电子邮件查询并按日期对记录进行排序,那么您需要一个哈希键为“电子邮件”且排序键为“日期”的表。ETC..

您可以创建二级索引,如果您想获得更高级的功能,请创建复合索引值和重载索引,以针对您的访问模式优化您的 DynamoDB 表。查看 DynamoDB 文档以了解更多信息https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes.html


推荐阅读