#graphql #amazon-dynamodb #aws-appsync
#graphql #amazon-dynamodb #aws-appsync
Вопрос:
Я хочу запросить все экземпляры модели по самому последнему созданному.
Читая официальные документы, они предлагают способ запроса по временным меткам по умолчанию ( updatedAt
/ createdAt
), но только при запросе по другому ключу. Итак, я знаю, что мог бы запросить гипотетическую User
модель с помощью name
and createdAt
, но я не могу запросить все экземпляры User
by createdAt
.
Существует ли установленный способ сделать это?
Я попытался добавить @key
директиву для сортировки updatedAt
, но это приводит к ошибке, поскольку updatedAt
она добавляется автоматически и не описана в моей схеме. Если я затем добавлю временные метки в свою схему, это создаст проблемы при изменении клиентов, потому что он ожидает, что временные метки будут добавлены мной, чего я, очевидно, не делаю, потому что он автоматически добавляется DynamoDB.
Спасибо
Ответ №1:
Вы могли бы попробовать использовать глобальный вторичный индекс в поле, которое вы хотите запросить. В вашем преобразователе AppSync вам нужно указать индекс, который вы хотите использовать для запроса.
Другим способом было бы запустить scan
операцию с вашей базой данных (в этом случае вам не нужно указывать ключ), хотя это было бы намного неэффективнее, чем a GSI
.