Директива
@ key может быть тем, что вы хотите.
Предположим, вы перечисляете Order
s определенного клиента по 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 для аналогичного обсуждения.