从DynamoDB中的表中获取信息

时间:2018-04-28 06:57:17

标签: ios swift amazon-web-services amazon-dynamodb

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

0 个答案:

没有答案