我是第一次使用 (AWS) DynamoDB
,所以我的问题很基础。
我已经建立了一个包含一个字段 (theField) 的表 (myTable),并且我可以一次填充一条记录。
这是我想要做的:进行查询以提取已排序表的第一个元素。我想这再简单不过了。
这是我的代码,基于我在 AWS 文档中找到的内容以及来自网络的一些示例:
let queryExpression = AWSDynamoDBQueryExpression()
queryExpression.scanIndexForward = false
queryExpression.limit = 1
let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
dynamoDbObjectMapper.query(myTable.self, expression: queryExpression) {
(output: AWSDynamoDBPaginatedOutput?, error: Error?) in
if error != nil {
print("The request failed. Error: \(String(describing: error))")
}
if output != nil {
// Process the output.
}
}
当我运行这段代码时,我收到以下错误消息:
The request failed. Error: Optional(Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=0 "(null)"
UserInfo={__type=com.amazon.coral.validate#ValidationException, message=Either the KeyConditions or
KeyConditionExpression parameter must be specified in the request.})
首先这个 KeyConditions 或 KeyConditionExpression 业务是什么? 查询很清楚为什么我需要任何条件?
其次,我当然尝试填充一些虚拟条件(基于我在其他帖子中找到的内容)以查看会发生什么,但它从来没有奏效。
谁能告诉我需要如何编写 queryExpression 才能完成我想做的事情?
最佳答案
您没有查询条件。对于查询,您至少需要提供 PartitionKey。试试 scan而不是查询。
关于ios - 如何提取 DynamoDB 表中的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50053827/