如何使用 Appsync 中的解析器获取 dynamodb 中存在的记录总数

Posted

技术标签:

【中文标题】如何使用 Appsync 中的解析器获取 dynamodb 中存在的记录总数【英文标题】:How to get the total number of records count present in dynamodb using Resolver in Appsync 【发布时间】:2019-02-14 20:32:53 【问题描述】:

我是 Dynamodb 和 Appsync 的新手,我有一个名为 User 的表,其中包含字段 id和name如下

type User 
id: ID! // auto-generated
name: String 

通过使用突变,我插入了 5 条记录。现在我的查询是如何使用 Appsync 请求映射模板(解析器)获取 Dynamodb 表中存在的记录数,该模板可以是任何类型的模板(即查询、扫描、batchGetitem 等)。

提前致谢!!

【问题讨论】:

DynamoDB 有 CountScannedCount (docs.aws.amazon.com/amazondynamodb/latest/developerguide/…),但我不确定它是否适用于 AppSync 查询。 【参考方案1】:

可能没有很好的方法来实现这一点。有人可能会声称扫描可以查看您返回多少,但这肯定不适用于非常大的数字。

我认为 DynamoDB 本身只能为您提供有关表中项目总数的估计值。不过,我认为这不会从 AppSync 中暴露出来。

【讨论】:

嗨,@Vasileios Lekakis 感谢您的足智多谋的重播。除此之外,我还尝试根据属性查询值,即在名称字段中我插入了名为 Bharath 的相同名称 5 次,然后尝试根据名称查询名称,然后返回计数。我可能写错了查询,请您指导如何使用 appsync 中的解析器来实现。非常感谢任何使用完整资源。谢谢【参考方案2】:

我认为您正在寻找scannedCount

query getUsers
    ListUsers
      items
        id
        name
      
      scannedCount
    

在请求解析器中选择“列表项”模板,在结果解析器中选择“返回单个结果”模板

【讨论】:

我在 GraphQL 操场上的查询中找不到 scannedCount

以上是关于如何使用 Appsync 中的解析器获取 dynamodb 中存在的记录总数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Aws AppSync 将 JWT 令牌(或任何其他变量)从父解析器传递给子解析器

Aws Appsync 解析器:如何创建解析器以更新列表映射 (DynaMoDB) 中的项目

解析器中的 AppSync GraphQL 变异服务器逻辑

用于过滤用例的AppSync DynamoDB解析器

AWS AppSync Lambda 解析器字段

在子解析器 AWS AppSync 中获取父对象