当前位置: 首页 > 知识库问答 >
问题:

如何在AWS AppSync中查询跟踪用户的所有帖子

梁丘安晏
2023-03-14

我有一个AWS Appsync应用程序,使用DynamoDB作为后端。我有一个帖子表,每个帖子都有一个原作者的用户名字段。我现在的情况是,我想查询查看他们所关注的所有作者的文章。

每个用户可以有许多帖子,每个用户可以跟随许多用户。

type Post {
    id: ID!
    username: String
    title: String
    content: String
}

type User{
     username: String
     following: [String]
}

我应该如何构造DynamoDB中的表和AppSync中的AppSync解析器/模式来实现这一点。

共有1个答案

柳志专
2023-03-14
type User {
    username: String! ## Primary key
    posts: [Post]
    following: [Following]
}
type Following {
    follower: String! ## Primary key
    username: String! ## Sort key
    posts: [Post]
}
type Post {
    username: String! ## Primary key
    postID: ID! 
    title: String
    content: String
}
type Query {
    getPostsByUsername(username: String!): User
}
schema {
    query: Query
}

User.posts解析器:

{
    "version": "2017-02-28",
    "operation": "Query",
    "query": {
        "expression": "username = :username",
        "expressionValues": {
            ":username": $util.dynamodb.toDynamoDBJson($context.source.username)
        }
    }
}

$util.toJson($ctx.result.items)

使用者跟随分解器

{
    "version": "2017-02-28",
    "operation": "Query",
    "query": {
        "expression": "follower = :follower",
        "expressionValues": {
            ":follower": $util.dynamodb.toDynamoDBJson($context.source.username)
        }
    }
}

$util.toJson($ctx.result.items)

下列的立柱分解器

{
    "version": "2017-02-28",
    "operation": "Query",
    "query": {
        "expression": "username = :username",
        "expressionValues": {
            ":username": $util.dynamodb.toDynamoDBJson($context.source.username)
        }
    }
}

$util.toJson($ctx.result.items)

查询getPostsByUsername解析程序

{
    "version": "2017-02-28",
    "operation": "GetItem",
    "key": {
        "username": $util.dynamodb.toDynamoDBJson($ctx.args.username),
    }
}

$util.toJson($ctx.result)

测试

用户表

可张贴

下表

现在我们可以通过用户名查询所有帖子,也可以查询所有朋友的帖子。

 类似资料:
  • 问题内容: 在Rails 3上有什么宝石可以显示 我的代码的哪一部分生成了哪个SQL查询 吗? 在Rails 2.3上有一个名为query_trace的插件,但是在Rails 3上似乎不起作用,它会产生以下错误: 问题答案: QueryTrace无法按原样工作,因为在ActiveRecord区域中的Rails 3 esp中进行了许多更改。 所以,我四处乱窜,使它像这样工作: 您只需要在提到的位置下

  • 问题内容: 是否可以在Magento中显示所有查询字符串?我真的很想看看执行了哪些查询。 谢谢 问题答案: 我不是100%确定这将捕获 每个 查询,但是大多数运行 在 考虑到这一点,您可以临时添加一些调试语句(为了安全起见,请向您制作的副本中添加) 如果您需要全部捕获它们,最好在MySQL级别进行(这并非总是可能的,具体取决于您的主机/ IT情况)

  • 我使用作为前端,作为迷你项目的后端。 到目前为止,每个用户都将在他的Profil中有内容和链接。 我想跟踪和显示用户多少次他们的链接被点击,从哪个国家等等。 我应该使用Laravel包来处理分析并用React显示它吗?或者使用Google Analytics。 如果是的话,我如何使用Google Analytics向每个用户显示他自己的统计数据?

  • 如题,我知道/etc/passwd 里面记录了所有的账户,可是我只关心非系统内置的账户,我想查询所有系统安装好以后手动创建的账户,这个要怎么实现?

  • 我需要在Google Analytics中显示用户在字段中输入的值。但我不需要查看字段上的点击次数。请帮帮我。

  • 问题内容: 我有一个要求,我必须在其中找到用户的地理位置。我使用了将用户的地址存储在数据库中然后显示该用户的地理位置的代码,现在假设用户将其位置更改为其他位置。如果用户现在从该地区或国家登录,如何我应该显示该用户的Geoip。我使用的代码是: 有没有其他选择,我可以找到用户的确切位置。请帮助 问题答案: Node-GeoIP可能是一种解决方案,但请记住,基于ip的地理定位并不总是真实的。