Я пытаюсь найти способ запрашивать (сканировать) таблицу в DynamoDB
.
Это код, который у меня есть, почти работает.
let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default(),
scanExpression = AWSDynamoDBScanExpression()
dynamoDbObjectMapper.scan(MyTable.self, expression: scanExpression) {
(output: AWSDynamoDBPaginatedOutput?, error: Error?) in
if error != nil {
print("The request failed. Error: \(String(describing: error))")
}
if output != nil {
print("Item count: \(output!.items.count)")
for item in output!.items {
let theItem = item as? MyTable
print("theItem: \(theItem!._vcIdKey!)")
}
}
}
Когда я запускаю этот код, я вижу один элемент в списке, хотя в действительности их семь.
На самом деле я хочу один элемент, но я подумал, что мне нужно добавить эту строку для этого (и мне не нужно):
scanExpression.limit = 1
Почему это так?
Вторая проблема заключается в том, что я получаю последний элемент и хочу получить первый.
Что мне нужно изменить?
Немного больше информации: я также попробовал следующий код, с тем же результатом.
dynamoDbObjectMapper.scan(VoChaAudioPost.self,
expression: scanExpression).continueWith(block: {
(task:AWSTask<AWSDynamoDBPaginatedOutput>!) -> Any? in
if let error = task.error as NSError? {
print("The request failed. Error: \(error)")
} else if let output = task.result {
print("items count: \(output.items.count)")
for item in output.items /*as! VoChaAudioPost*/ {
// Do something with item.
print("item : \(item)")
}
}
return()
})