Amazon web services AppSync/DynamoDB中的附加解析器是否为读取操作支付两次账单?

Amazon web services AppSync/DynamoDB中的附加解析器是否为读取操作支付两次账单?,amazon-web-services,amazon-dynamodb,aws-appsync,dynamodb-queries,Amazon Web Services,Amazon Dynamodb,Aws Appsync,Dynamodb Queries,我需要查询我的用户最喜欢的帖子。通过这个查询,他们应该能够看到他的信息,如标题和喜欢的帖子。考虑到一些属性的值,如total likes会随着时间的推移而变化,我无法将这些值添加到收藏夹数据集中。如果我愿意这样做,我必须在有人喜欢某篇文章时更新每个收藏夹数据集,以使其保持最新。这使我决定不将这些信息(例如总喜好)添加到收藏夹条目中,而只为post属性附加一个额外的解析程序。它可能是这样的: type Post { pid: ID! title: String! content: St

我需要查询我的用户最喜欢的帖子。通过这个查询,他们应该能够看到他的信息,如标题和喜欢的帖子。考虑到一些属性的值,如total likes会随着时间的推移而变化,我无法将这些值添加到收藏夹数据集中。如果我愿意这样做,我必须在有人喜欢某篇文章时更新每个收藏夹数据集,以使其保持最新。

这使我决定不将这些信息(例如总喜好)添加到收藏夹条目中,而只为post属性附加一个额外的解析程序。它可能是这样的:

type Post {
  pid: ID!
  title: String!
  content: String!
  likes: Int      // <-- An attribute which I need to show while displaying favorites
}

type Favorite{
  fid: ID!
  pid: String!
  ...
  post: Post!  // <-- This has an own resolver
}
如果用户要查询自己的收藏夹,这会花费读取操作的两倍吗?因为它需要对结果中的每个项执行两个GetItem操作

例如: 限制为10的查询收藏夹将花费20次读取操作(10次用于普通收藏夹数据(fid和pid),10次用于通过附加解析器发布数据

或者DynamoDB是否将其捆绑到后台的一个读取操作中?

此外,对于这个问题,这是一个可接受的解决方案(或正常方法)吗?您是否在使用这种技术?或者在扩展时这会变得非常昂贵?


编辑:我只使用一个表,所以每个数据集都在其中。

要查询收藏夹列表,您是否使用DynamoDB查询?如果是,则为每个收藏夹检索帖子的成本为1个查询+N*1个GetItem。您说“如果我愿意这样做,当有人喜欢某篇文章时,我必须更新每一个最喜欢的数据集,使它们保持最新。"->为什么不在访问帖子而不是更新帖子时才刷新喜欢的内容。@t因为更新是写操作,所以这会很昂贵,不是吗?所以我查询收藏夹时,每个项目都需要一个写操作。你能解释一下1个查询+N*1个GetItem吗?如果我查询10个收藏夹,会是11个吗?是的,我使用的是DynamoDB查询对于从Android设备调用的内容。getFavorites()在我的架构的查询块中定义。感谢您的帮助:)要查询收藏夹列表,您是否使用DynamoDB查询?如果是,那么成本将是1个Query+N*1个GetItem来检索每个收藏夹的帖子。您说过“如果我愿意这样做,我必须在有人喜欢某篇文章时更新每个喜欢的数据集,以使其保持最新。”->为什么不在访问该文章时而不是在更新该文章时更新这些喜欢的数据集呢。@t因为更新是写操作,所以这会很昂贵,不是吗?因此,我需要一个写操作每一个项目,我查询我的最爱。你能解释一下1个查询+N*1个GetItem吗?如果我查询10个收藏夹,会是11个吗?是的,我正在使用DynamoDB查询从安卓设备调用的内容。getFavorites()是在“我的架构”的查询块中定义的。谢谢你的帮助:)
{
    "version": "2018-05-29",
    "operation": "GetItem",
    "key": {
        "id": $util.dynamodb.toDynamoDBJson($ctx.source.pid),
     }
 }