如何在aws-amplify中的列表查询中对字段进行排序?

时间:2019-06-07 04:59:51

标签: aws-amplify aws-appsync

如何在放大graphql api中对字段进行排序?我正在尝试在获取模型列表的同时对字段进行排序。

例如:在listOrder查询中对createdDate进行排序。

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

@key指令可能就是您想要的。

假设您要通过Order时间戳列出特定客户的createdAt个,并假设这是您的模式:

type Order @model @key(fields: ["customerEmail", "createdAt"]) {
    customerEmail: String!
    createdAt: String!
    orderId: ID!
}

这将创建一个主索引,其哈希键为customerEmail,排序键为createdAt,由AppSync解析程序代表您管理。这将允许您运行以下查询:

query ListOrdersForJack {
  listOrders(customerEmail:"jack@gmail.com") {
    items {
      orderId
      customerEmail
      createdAt
    }
  }
}

为什么没有明确的sort关键字?因为@key指定字段createdAt应该用作排序键,所以排序将自动发生。您可以参考https://github.com/aws-amplify/amplify-cli/issues/1502进行类似的讨论。