aws dynamodb如何在ios中使用批量获取对象映射器

时间:2016-02-06 20:36:00

标签: ios amazon-web-services amazon-dynamodb aws-sdk-ios

我需要使用ios sdk从dynamodb获得约50项主键。我能够通过AWSDynamoDB.defaultDynamoDB()。batchGetItem获取项目,但无法确定是否可以将对象映射器与响应一起使用。不幸的是,ios中的objectmapper类没有batchGet函数。据我所知,在这种情况下我无法使用查询。

是否可以使用对象映射器?如果不是哪一个更有意义:解析响应以获取所需的类实例或在每个项目上调用objectMapper.load?

2 个答案:

答案 0 :(得分:2)

目前,AWSDynamoDBObjectMapper不支持批量获取项目。如果要使用对象映射器,则需要一次加载一个项目。

答案 1 :(得分:0)

我这样解决了,

    let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.defaultDynamoDBObjectMapper()
    let task1 = dynamoDBObjectMapper.load(User.self, hashKey: "rtP1oQ5DJG", rangeKey: nil)
    let task2 = dynamoDBObjectMapper.load(User.self, hashKey: "dbqb1zyUq1", rangeKey: nil)

    AWSTask.init(forCompletionOfAllTasksWithResults: [task1, task2]).continueWithBlock { (task) -> AnyObject? in
        if let users = task.result as? [User] {
            print(users.count)
            print(users[0].firstName)
            print(users[1].firstName)
        }
        else if let error = task.error {
            print(error.localizedDescription)
        }
        return nil
    }