Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用GraphQL控制AWS Amplify中列表查询的排序方向_Javascript_Graphql_Aws Amplify - Fatal编程技术网

Javascript 如何使用GraphQL控制AWS Amplify中列表查询的排序方向

Javascript 如何使用GraphQL控制AWS Amplify中列表查询的排序方向,javascript,graphql,aws-amplify,Javascript,Graphql,Aws Amplify,我已经看到了几篇关于如何在AWS Amplify的GrahphQL API包中创建模式的有用文章,该API包将返回排序响应。简而言之,如果在schema.graphql文件中有以下内容 type Record @model @key(name: "byDateCreated", fields: ["status", "createdAt"], queryField: "RecordsByDateCreated") {

我已经看到了几篇关于如何在AWS Amplify的GrahphQL API包中创建模式的有用文章,该API包将返回排序响应。简而言之,如果在
schema.graphql
文件中有以下内容

type Record @model
@key(name: "byDateCreated", fields: ["status", "createdAt"], queryField: "RecordsByDateCreated") {
    id: ID!
    status: RecordStatus!
    description: String!
    createdAt: String
}
它将创建一个名为
recordsByDateCreated
的自定义查询。按如下方式使用它(各位,这里是js):

将返回表中按
createdAt
值排序的前10条记录。默认情况下,此数据将以升序返回,这意味着您将首先获得最早的记录

然而,我需要的是一个首先有最新记录的响应。我必须在模式或查询中添加什么才能设置排序顺序?

(剧透警报:我在这里回答我自己的问题,以防其他人寻求帮助)。

您需要一种方法以降序对表的记录进行排序。如果查看AWS Amplify生成的文件,您将看到您创建的新查询接受一系列参数:

export const recordsByDateCreated = /* GraphQL */ `
  query RecordsByDateCreated(
    $status: RecordStatus
    $createdAt: ModelStringKeyConditionInput
    $sortDirection: ModelSortDirection
    $filter: ModelRecordFilterInput
    $limit: Int
    $nextToken: String
  ) {
    RecordsByDateCreated(
      status: $status
      createdAt: $createdAt
      sortDirection: $sortDirection
      filter: $filter
      limit: $limit
      nextToken: $nextToken
    ) {
      items {
        id
        description
        status
        createdAt
        updatedAt
      }
      nextToken
    }
  }
`
事实证明,如果您知道
ModelSortDirection
(它们是'ASC'和'DESC')的可能值,那么在进行类似的查询时,您可以将一个作为变量参数之一传入:

await API.graphql(graphqlOperation(recordsByDateCreated, { status: 'unused', limit: 10, sortDirection: 'DESC' }));
(请注意,您要传递的变量的键是
sortDirection
,而不是
$sortDirection
ModelSortDirection

我在AWS Amplify的文档中找不到这个,我依赖于我找到的其他帖子。如果你找到了与此相关的文档,那么也许你可以在评论中添加一个链接

await API.graphql(graphqlOperation(recordsByDateCreated, { status: 'unused', limit: 10, sortDirection: 'DESC' }));