Можно получить записи из DynamoDB без предоставления выражения ключевого условия для первичного ключа (или индекса), но вы должны использовать операцию Scan
, которая обращается к каждому элементу в таблице (или индексе).
Пример из AWS Документация по сканированию AppSync:
{
"version" : "2017-02-28",
"operation" : "Scan",
"filter" : {
"expression" : "begins_with(title, :title)",
"expressionValues" : {
":title" : { "S" : "${context.arguments.title}" }
},
}
}
DynamoDB Scan API:
Операция сканирования возвращает один или несколько элементов и атрибутов элементов, обращаясь к каждому элементу в таблице или вторичном индексе. Чтобы DynamoDB возвращал меньше элементов, можно предоставить операцию FilterExpression.
Что касается вашего конкретного вопроса о поиске элементов, которые не соответствуют определенному первичному ключу:
primaryKey! = anInput
Если ваш primaryKey представляет собой комбинацию ключа раздела + ключа сортировки, вам следует рассмотреть возможность использования операторов NOT
и логических AND
со скобками:
{
"version": "2017-02-28",
"operation": "Scan",
"filter": {
"expression": "NOT (#PK = :PK AND #SK = :SK)",
"expressionNames": {"#PK": "PK", "#SK": "SK"},
"expressionValues": {
":PK":{"S":"some-partition-key"},
":SK":{"S":"some-sort-key"}
},
},
"consistentRead": true,
"limit": 10
}
person
ggriffin
schedule
21.10.2019