amazon-web-services - 如何在 amplify-cli 中对查询结果进行服务器端排序/排序
问题描述
我正在使用 amplify-cli 和 vue 为我的 web 应用程序编写一个类似 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
。
关于下面的定义:
directive @key(fields: [String!]!, name: String, queryField: String) on OBJECT
重要的是“字段”参数的第一个元素是分区(或哈希)键。每个后续元素都是一个排序键。排序键将一起确定顺序或返回的结果。
(这样做是amplify push
为了在类型上创建一个全新的 GraphQL 字段Query
。 的值queryField
将是新字段名称。name
参数是全局二级索引名称。)
推荐阅读
- javascript - React 中的空状态,异步函数的调用
- c# - EF Core - 如果为 Null,则选择父值
- adfs - adfs 设置中的 itfoxtec-identity-saml2 颁发者是什么?
- kubernetes - jhipster kubernetes 部署没有redis
- javascript - 单击Jquery中的弹出按钮后如何显示刻度线?
- java - 在 Java Swing 中为 JFrame 添加背景
- lag - 如何更改项目监视器中的渲染速度?
- php - 为什么在我实时上传时插入语句不起作用?但是当在 localhost 上完美运行时
- javascript - 无法读取未定义的属性“包含” - 快速路由
- angular - Angular 中的二进制输入验证器(TypeScript)