我正试图找到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()
})