amazon-web-services - 如何在 amplify-cli 中服务器端排序/排序查询结果

标签 amazon-web-services graphql aws-amplify

我正在使用 amplify-cli 和 vue 为我的 webapp 编写一个类似于 facebook 墙的函数,我需要在我的查询中执行一个简单的服务器端 orderby/sort。好像不可能。。

我已经尝试了标准的 graphql 方式,添加排序后,它不起作用......

amplify-cli 生成的查询:

query ListWallposts(
  $filter: ModelWallpostFilterInput
  $limit: Int
  $nextToken: String
  ) {
  listWallposts(filter: $filter, limit: $limit, nextToken: $nextToken
  ) {
  items {
    id
    content
    createdAt
    comments {
      nextToken
    }
    user {
      id
      firstname
      lastname

    }
  }
  nextToken
  }
}

我的补充:
query ListWallposts(
   $filter: ModelWallpostFilterInput
   $limit: Int
   $nextToken: String
  ) {
  listWallposts(filter: $filter, limit: $limit, nextToken: $nextToken,sort:{ field:createdAt, order:ASC }
  ) {
  items {
    id
    content
    createdAt
    comments {
      nextToken
    }
    user {
      id
      firstname
    lastname
    }
  }
  nextToken
  }
}

在创建 amplify-cli 表后,我无法将主排序键添加到 dynamoDB。
我花了几天时间试图弄清楚这个简单的事情......任何帮助都会非常受欢迎。

最佳答案

DynamoDB 需要一个全局二级索引。 @key转换(或指令)可以添加到您的 schema.graphql文件作为已存在 @model 的同级文件转变。

Key Directive Documentation

关于下面的定义:
directive @key(fields: [String!]!, name: String, queryField: String) on OBJECT
重要的是“字段”参数的第一个元素是分区(或哈希)键。每个后续元素都是一个排序键。总之,排序键将决定顺序或返回的结果。

(这样做会导致 amplify pushQuery 类型上创建一个全新的 GraphQL 字段。queryField 的值将是新的字段名称。name 参数是全局二级索引名称。)

关于amazon-web-services - 如何在 amplify-cli 中服务器端排序/排序查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54289250/

相关文章:

reactjs - 增加超时限制 gatsby-source-wordpress-experimental

reactjs - 未处理的拒绝 (TypeError) : user. getSession 不是函数

amazon-web-services - EC2 实例的隐私期望是什么?

linux - 在 Amazon AMI Linux 上安装 GVIM

tomcat - 监控 Tomcat Web 应用程序

amazon-web-services - 需要有关 kubernetes 卷挂载问题的帮助

javascript - 无法使用 Apollo 和 GraphQL 访问从 refetchQueries 返回的数据

javascript - 无法从 Github 的 GraphQL 渲染嵌套 Prop

react-native - GraphQL DynamoDB 架构中的默认主键?

node.js - 有什么方法可以为用户生成认知身份验证 token 而无需在 aws-sdk 或 aws-amplify 中提供密码?