sorting - GraphQL:基于用户属性的排序查询
问题描述
我刚刚使用 AWS Amplify、DynamoDB 和 GraphQL 在我的 iOS 应用程序中实现了分页。我想做的是根据用户的分数从高到低查询用户。为此,我需要在拨打电话时对查询进行排序。如何根据用户的分数进行排序查询?
下面是我的用户表
type User @model @key(fields: ["username"]) {
name: String
email: String!
username: String!
dateOfBirth: String
university: String!
phoneNumber: String!
biography: String
score: Int!
deviceToken: String
endpointArn: String
}
解决方案
这是索引的一个用例。
就如何实现该数据访问模式而言,当您使用该@key
指令时,Amplify 会为您创建一个全局二级索引。在这种情况下,由于您只对高分感兴趣,您可以通过将以下指令添加到您的 User 模型来在 score 字段上创建另一个 GSI:
@key(name: "UsersByScore", fields: ["username","score"], queryField: "UsersByScore")
然后,通过指定的限制n
和排序方向,使用 Amplify 生成的 UsersByScore 查询来查询n
得分最高(或最低)的用户。
推荐阅读
- java - 方法未从 antlr 生成的 java 代码触发
- c# - C# 缺少 assembly.cs App.Config 和 Program.cs
- xml - Odoo 10:字段“carrier_tracking_ref”不存在
- javascript - JavaScript 中的 typeof() 让我对变量“名称”感到困惑
- javascript - 如何将输入框中的1个值除以10另一个输入框除以10而不四舍五入
- reactjs - React 16 - 流星 SSR
- node.js - node [file.js] 使用运行浏览器和 nodejs .editor 产生不同的结果
- php - PHP远程强制注销
- node.js - 我正在尝试使用 node.js 将 mlab 数据输入控制台,但出现此错误
- django - Django Rest Framework JWT 未提供身份验证凭据